PHP 4完全中文手册

本手册是台湾彭武兴先生所著的 <<PHP BIBLE>> 一书的简体中文版。笔者只是对该书进行了繁简转换,并将原书中的台湾术语改为通俗的术 语,及纠正了由此带来的一些语意错误，仅供个人参考使用。未经彭武兴先生书面授权请勿用于商业目的。

整理: sadly (www.phpx.com)
由于本人水平有限，错误之处在所难免，希望各位用户指正。由此带来的一切后果，本人概不负责。

欢迎访问 中国PHP联盟 www.phpx.com
2000-05-01

  • 导读

  • 第一章 PHP 介绍
    1. 来龙去脉
    2. 功能概述
    3. PHP 与其它 CGI 的比较
  • 第二章 安装与配置
    1. 环境需求与准备工作
    2. 快速配置及安装
    3. PHP 的编译配置详细选项
    4. php.ini 配置详细选项
    5. 如何写作 PHP 程序
  • 第三章 语法
    1. 语法简述
      1. hello, world
      2. 嵌入方法
      3. 引用文件
      4. 程序注释
    2. 常量与变量
      1. 常量类型
      2. 变量类型
      3. 变量的使用
    3. 运算符号
      1. 算术运算
      2. 字符串运算
      3. 赋值运算
      4. 位运算
      5. 逻辑运算
      6. 其它运算符号
    4. 流程控制
      1. if..else 循环
      2. do..while 循环
      3. for 循环
      4. switch 循环
      5. 其它的流程控制
    5. 函数与类
      1. 函数
      2. 类
  • 第四章 函数库及函数
    1. Adabas D 数据库链接函数库
    2. apache服务器专用函数库
    3. 数组处理函数库
    4. 拼写检查函数库
    5. BC 高精确度函数库
    6. 历法函数库
    7. ClibPDF 函数库
    8. 日期与时间函数库
    9. DBA 函数库
    10. dBase 格式资料表函数库
    11. dbm 类数据库函数库
    12. 目录管理函数库
    13. 动态链接函数库
    14. 程序执行功能函数库
    15. FDF 函数库
    16. filePro 数据库函数库
    17. 文件系统函数库
    18. HTTP 相关函数库
    19. Hyperwave 服务器函数库
    20. 图形处理函数库
    21. IMAP 电子邮件系统函数库
    22. PHP 选项及相关信息函数库
    23. Informix 数据库函数库
    24. InterBase 数据库函数库
    25. LDAP 目录协议函数库
    26. 电子邮件函数库
    27. 数学运算函数库
    28. mcrypt 编码函数库
    29. mhash 哈稀函数库
    30. 杂项函数库
    31. mSQL 数据库函数库
    32. SQL Server 数据库函数库
    33. MySQL 数据库函数库
    34. Sybase 数据库函数库
    35. 网络函数库
    36. NIS 函数库
    37. ODBC 数据库链接函数库
    38. Oracle 8 数据库函数库
    39. Oracle 数据库函数库
    40. Perl 相容语法函数库
    41. PDF 格式文件函数库
    42. PostgreSQL 数据库函数库
    43. 正则表达式函数库
    44. 信号与共享内存函数库
    45. Solid 数据库链接函数库
    46. SNMP 网管函数库
    47. 字符串处理函数库
    48. URL 处理函数库
    49. 变量处理函数库
    50. Vmailmgr 邮件处理函数库
    51. WDDX 函数库
    52. 压缩文件函数库
    53. XML 解析函数库
    54. Session 函数库
    55. GNU 记录函数库
    56. FTP 文件传输函数库
    57. MCAL 模块日历存取函数库
  • 第五章 范例程序
    1. 访客计数器
    2. 用户认证
    3. 聊天室
    4. 留言板
    5. 意见信箱
    6. 广告轮播

  • 附录 A 函数索引


导读

本书适合对网站已有初步认识的 Webmaster 或是专业的 CGI 程序开发人员。全书分成五章：

第一章 | 主要是介绍 PHP 的背景及功能，并将 PHP 和其它的 CGI 界面比较，让您对 PHP 有初步的认识。
第二章 | 说明 PHP 的安装及配置部份。对于分工较细的网站，本章适合系统管理人员在配置 PHP 系统的参考。
第三章 | 本章说明了 PHP 的程序结构与相关语法，提供想要学习 PHP 语言的读者一个完整的基础。
第四章 | 这是本书的最重要部份，也将是您将本书留在书签或我的最爱的理由。本章将 967 个 PHP 的函数，依其所属的性质分成 55 个单元，对函数提供详细的解说，并适时提供相关的范例。
第五章 | 本章的范例程序都是作者在 Web CGI 上多年实战经验的累积，为前面几章的总成及综合范例。您可以从这些程序入手，精心打造属于自己网站的专用程序，让您的网站与众不同。
附录Ａ | 可让您在对某函数有印象时，快速找到您要的函数。

对于刚开始接触 PHP 的读者，建议从第一章或者第二章开始读起，按部就班打好基础。对于完全掌握 PHP 程序语言的高手，建议将第四章看一次，加上附录Ａ函数索引，必让您在开发 PHP 程序时如虎添翼。对于学了一点，却又觉得有些不够的读者，建议从第五章，研究现成的程序，让您对 PHP 加深结构语法的印象。

整理: sadly (www.phpx.com)


PHP 的来龙去脉

讲到 PHP 的全名就蛮有趣的，它是一个递归的缩写名称，"PHP: Hypertext Preprocessor"，打开缩写还是缩写。PHP 是一种 HTML 内嵌式的语言 (类似 IIS 上的 ASP)。而 PHP 独特的语法混合了 C、Java、Perl 以及 PHP 式的新语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。

图一: PHP 是 Web Server 最佳的后端延伸界面

PHP 最初是在公元 1994 年 Rasmus Lerdorf 开始计划发展。在 1995 年以 Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本。在这早期的版本中，提供了访客留言本、访客计数器等简单的功能。随后在新的成员加入开发行列之后，在 1995 年中，第二版的 PHP 问市。第二版定名为 PHP/FI(Form Interpreter)。PHP/FI 并加入了 mSQL 的支持，自此奠定了 PHP 在动态网页开发上的影响力。在 1996 年底，有一万五千个 Web 网站使用 PHP/FI；在 1997 年中，使用 PHP/FI 的 Web 网站成长到超过五万个。而在 1997 年中，开始了第三版的开发计划，开发小组加入了 Zeev Suraski 及 Andi Gutmans，而第三版就定名为 PHP3。

PHP3 跟 Apache 服务器紧密结合的特性；加上它不断的更新及加入新的功能；并且它几乎支持所有主流与非主流数据库；再以它能高速的执行效率，使得 PHP 在 1999 年中的使用网站超过了十五万!!它的源代码完全公开，在 Open Source 意识抬头的今天，它更是这方面的中流砥柱。不断地有新的函数库加入，以及不停地更新的活力，使得 PHP 无论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供丰富的函数，使得在程序设计方面有着更好的支持。

PHP 的第四代 Zend 核心引擎已经进入测试阶段。整个脚本程序的核心大幅改动，让程序的执行速度，满足更快的要求。在最佳化之后的效率，已较传统 CGI 或者 ASP 等程序有更好的表现。而且还有更强的新功能、更丰富的函数库。无论您接不接受，PHP 都将在 Web CGI 的领域上，掀起巅覆性的革命。对于一位专职 Web Master 而言，它将也是必修课程之一。

整理: sadly (www.phpx.com)

[ 下一页 ]


PHP 的功能概述

PHP 在数据库方面的丰富支持，也是它迅速走红的原因之一，它支持下列的数据库或是资料表：

  • Adabas D
  • DBA
  • dBase
  • dbm
  • filePro
  • Informix
  • InterBase
  • mSQL
  • Microsoft SQL Server
  • MySQL
  • Solid
  • Sybase
  • ODBC
  • Oracle 8
  • Oracle
  • PostgreSQL

而在 Internet 上它也支持了相当多的通讯协议 (protocol)，包括了与电子邮件相关的 IMAP, POP3；网管系统 SNMP；网络新闻 NNTP；帐号共用 NIS；全球信息网 HTTP 及 Apache 服务器；目录协议 LDAP 以及其它网络的相关函数。

除此之外，用 PHP 写出来的 Web 后端 CGI 程序，可以很轻易的移植到不同的系统平台上。例如，先以 Linux 架的网站，在系统负荷过高时，可以快速地将整个系统移到 SUN 工作站上，不用重新编译 CGI 程序。面对快速发展的 Internet，这是长期规划的最好选择。

在加入其它的模块之后，提供了更多样的支持如下：

  • 英文拼写检查
  • BC 高精确度计算
  • 公元历法
  • PDF 文件格式
  • Hyperwave 服务器
  • 图形处理
  • 编码与解码功能
  • 哈稀处理
  • WDDX 功能
  • qmail 与 vmailmgr 系统
  • 压缩文件处理
  • XML 解析

除此之外，一般语言有的数学运算、时间处理、文件系统、字符串处理、行程处理等功能，它一样都不缺。再加上它是免费的系统，使得成本与效益比，几乎等于无限大！


PHP 与其它 CGI 的比较

无可置疑的，写 CGI 的方式有很多种，而 PHP 只是其中的一种选择罢了。对资深的 Webmaster 而言，CGI 的写作界面应是随着需求而改动。毕竟，在一个对系统反映速度要求极严格的系统而言，恐怕只有 NSAPI 界面写的 CGI 程序才能符合要求了。在其它的场合，相信使用 PHP 来作为 CGI 的界面是游刃有余，而且是最适合的。

程序界面 | PHP | ASP | CGI | NSAPI | ISAPI
操作系统 | 均可 | Win32 | 均可 | 均可 | Win32
Web服务器 | 数种 | IIS | 均可 | Netscape Server | IIS
执行效率 | 快 | 快 | 慢 | 极快 | 极快
稳定性 | 佳 | 中等 | 最高 | 差 | 差
开发时间 | 短 | 短 | 中等 | 长 | 长
修改时间 | 短 | 短 | 中等 | 长 | 长
程序语言 | PHP | VB | 不限 | C/C++ | C/Delphi
网页结合 | 佳 | 佳 | 差 | 差 | 差
学习门槛 | 低 | 低 | 高 | 极高 | 高
函数支持 | 多 | 少 | 不定 | 中等 | 少
系统安全 | 佳 | 极差 | 最佳 | 佳 | 尚可
使用网站 | 超多 | 多 | 多 | 极少 | 少
改版速度 | 快 | 慢 | 无 | 慢 | 慢

其中的 PHP 可用在数种 Web 服务器上；传统 CGI 就不限是哪种操作系统或 Web 服务器平台；NSAPI 一定要在 Netscape 的服务器 (如 Netscape Enterprise Server 或 FastTrack Server) 上才可以执行，但可支持多种操作系统 (UNIX 或 Win32)；ASP 及 ISAPI 只在 IIS 上有完整的功能。

在稳定性上，由于 NSAPI 或 ISAPI 是动态链接的方式，因此在执行若出现问题，会使得 Web 服务器一起瘫痪。而 ASP 在我实际应用经验上，隔阵子就会使系统不稳定，需要重新启动操作系统。PHP 在许多的网站使用上，不但长期使用都没有问题，而且程序的稳定性也不错。当然最稳的还是传统 CGI 程序，因为它是由操作系统负责控制，不会因 CGI 程序的错误导致 Web 服务器的不稳定。

在开发及维护时间上，PHP 及 ASP 都有不错的表现。而 NSAPI 及 ISAPI 则需要长时间的开发过程，在稳定上线后，这两种界面反倒是效率最佳的方法。传统的 CGI 程序则要视开发工具语言而定了，用 Perl 或是 shell script 不需要编译的过程，直接就可以执行，若用 Delphi 或 VC/BCB 甚至用组合语言等都要经过编译才能执行，至于用 VB 来写传统 CGI，唉....。

要比较和网页结合的能力，PHP 和 ASP 是并驾齐驱的，其它的方式就不能内嵌 HTML 语法了。而这也是影响开发时间的因素之一。

就系统安全性而言，ASP 是最差的，在没有经过微软的 IIS Service Pack 处理过，使用 ::$DATA 就可以看到 ASP 的源代码，这真是叫人不敢领教。当然，传统 CGI 的程序，由于是由操作系统直接管理，要破解的难度最高，黑客必须由操作系统下手，而不能由 Web 服务器下手。PHP 在许多商业及非商业使用时，也没有听过有什么安全的问题。

在新增功能及改版方面，传统的 CGI 由于不受任何语言限制，没有这方面的问题。PHP 是最有活力的，数天至数周就有一个新版本出现，每次的新版，就代表更多的功能及修正更多的错误。其它的 ASP、NSAPI、ISAPI 就视它的 Web 服务器改版速度了，ASP 要等到 IIS 5.0 出现时才会有 ASP 3.0，也就是要等到 Windows 2000 正式上市。

总而言之，在 Web 的后端 CGI 程序，就像鱼与熊掌一般，没有高效率又开发方便的选择。不过相信 PHP 是处于开发容易、效率也不错的平衡点上。


环境需求与准备工作

在安装 PHP 做为 WWW 服务器的一部份时，我们可以考虑用 UNIX 操作系统；或者是 Windows NT/95 等 Win32 API 的平台。当然，大部份的人都会使用 UNIX 来当作 PHP 的执行平台 (在 Windows NT 的用户大多数都会选择 IIS + ASP)，因此，本书的所有内容以及范例程序都是在 UNIX 上为主。实际上，Linux + Apache + PHP 应是最经济的选择，因为这样的组合几乎是不用钱的，成本与效益比这也是最好的选择。而许多成功网站的经验，更是采用这种组合最好的佐证。

Linux 操作系统方面，您可以选择各式的 Linux 套件，包括 Slackware Linux、RedHat、OpenLinux、SuSE....等等，反正这方面的软件在店里也是很容易而且很便宜就可以买到。对学生而言，也可以去各大 FTP 站下载完整的系统安装。

Apache 服务器则是目前最多 WWW 网站所采用的服务器。您可以到 http://www.apache.org 下载最新版的程序及相关文件，若您觉得从国外下载要很久的话，也可以用它的 Mirror 网站下载。

PHP 则可以去它的官方网站 http://www.php.net 下载所需要的程序。

虽然目前 WindowsNT 或者 Windows98 等 Win32 的系统平台也能安装 PHP 及 Apache 服务器，不过这似乎没什么道理，因为 PHP 和 Apache 在 UNIX下可以跑得更快更好。

当然，若想使用商业化的系统平台，SUN、IBM、HP、DEC、SGI、NEC 等公司都提供相关的 UNIX 或者是 WindowsNT 的系统平台。加上高安全性调整过后的 Apache 服务器：Stronghold 或是其它支持 SSL 的 Apache 版本。这种组合，相信能满足商业化的需求。而 PHP 就扮演着快速方便的 CGI 角色，让客户对网站的服务品质更加满意。


快速配置及安装

以下是基本的安装步骤，运行环境是 UNIX 系列的系统平台。在安装之前，要先下载 apache_1.3.x.tar.gz 及 php-3.0.x.tar.gz 两个文件。可以将这两个文件放在 /usr/src 中再开始执行以下的步骤。 下面每个行号后是一个步骤，步骤中的所有选项是连在一起的，请不要分开执行。

  1. gzip -d -c apache_1.3.x.tar.gz | tar xvf -
  2. gzip -d -c php-3.0.x.tar.gz | tar xvf -
  3. cd apache_1.3.x
  4. ./configure --prefix=/www
  5. cd ../php-3.0.x
  6. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
  7. make
  8. make install
  9. cd ../apache_1.3.x
  10. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
  11. make
  12. make install

第一、二行利用 gzip 及 tar 加上管道功能，将压缩文件解压还原。然后在 Apache 的原始文件目录中执行环境配置，--prefix 选项指示 Apache 的安装目录路径。之后进入 PHP3 的原始文件目录中，若没有 MySQL 数据库，则可省略 --with-mysql 的选项，重要的是一定要加入 --with-apache 选项，而且 Apache 原始文件的路径要正确。配置完 PHP3 之后就编译、安装到 Apache 的原始文件目录中。之后在 Apache 原始文件目录中再加入 PHP 的模块文件。在编译及安装 Apache 之后就初步完成了。之后就是要配置 Apache 才能让 Web Server 顺利运作。

需要注意的是，PHP 要和任何数据库连接，都要在执行这些步骤之前先将数据库设好，并确定 Web Server 上可以顺利存取数据库系统。如果需要其它的一些 PHP 外部模块也要先配置好这些模块。

  13. cd ../php-3.0.x
  14. cp php3.ini-dist /usr/local/lib/php3.ini

之后将 php3.ini 放在指定的目录，如果需要，也可以手动修改 php3.ini 文件文件，以符合使用的要求。

在 Apache 服务器的配置方面，要在 Apache 的配置文件 httpd.conf 或 srm.conf 文件中加入下面的字符串。告诉 Apache 服务器，扩展名 php3 是一个特殊的程序文件。当然扩展名可以设成别的扩展名，还有一些网站将 php 的程序扩展名设为 phtml 也是不错的选择，反正这就要看 Webmaster 的规划了。

AddType application/x-httpd-php3 .php3

整理: sadly (www.phpx.com)

在 PHP 4.x 版的方法大致和 PHP 3.0.x 版相同，不同的地方在于 PHP 4.x 的目录名称及编译后的模块放置目录不同。此外，默认的扩展名也由 .php3 变成了 .php。当然在安装前还要先下载 PHP 4.x 的程序才行。

  1. gzip -dc apache_1.3.x.tar.gz | tar xvf -
  2. gzip -dc php-4.0.x.tar.gz | tar xvf -
  3. cd apache_1.3.x
  4. ./configure --prefix=/www
  5. cd ../php-4.0.x
  6. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
  7. make
  8. make install
  9. cd ../apache_1.3.x
  10. ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
  11. make
  12. make install
  13. cd ../php-4.0.x
  14. cp php.ini-dist /usr/local/lib/php.ini

在 httpd.conf 或 srm.conf 加入

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

而 PHP 4.x 版中对 Apache 服务器加入了新的环境变量配置项。

php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]

在 PHP 3.0.x 版中，有些目录可能会有 .htaccess 的文件，使用 PHP 4.0.x 版的系统，必须将这个文件拿掉，可以使用改名字的方式或者直接删除。

整理: sadly (www.phpx.com)

当一切配置好了之后，重新执行 Apache 服务器。在 Apache 目录下有 bin 或是 sbin 的目录，其中会有 apachectl 的 shell 程序，输入 apachectl restart 就可以重新启动 Apache 服务器了。赶快试看看 hello, world 程序吧！


PHP 的编译配置详细选项

在详细选项上，除了上述的安装简介外，也可以在编译时加入其它的选项。

apache模块
语法: --with-apache=DIR
说明: 用本选项可以让 PHP 以apache的模块方式使用，DIR 的字符串可以是 /usr/local/apache 或其它安装apache的目录
范例: --with-apache=/var/lib/apache

fhttpd 服务器模块
语法: --with-fhttpd=DIR
说明: 若使用 fttpd 服务器，可以使用本指令编译 PHP。用模块的方式配合 fttpd 服务器，可以有较好的效率。

Adabas D 数据库
语法: --with-adabas=DIR
说明: 数据库系统为 Adabas D 数据库时需要加本选项。关于 Adabas D 数据库的细节，可以参考 http://www.adabas.com。
范例: --with-adabas=/usr/local/adabasd

dBase 资料表
语法: --with-dbase
说明: 只要加本选项，不用其它的参数或函数库，PHP 就会让系统有存取 dBase 资料表的功能。

filePro 数据库
语法: --with-filepro
说明: 不用指定数据库路径及其它函数库等，可以读取 filePro 数据库 (唯读)。

mSQL 数据库
语法: --with-msql=DIR
说明: 提供存取 mSQL 数据库。更多的细节请参考 mSQL 的网站 http://www.hughes.com.au。
范例: --with-msql=/usr/local/Hughes

MySQL 数据库
语法: --with-mysql=DIR
说明: 提供存取 MySQL 数据库。更多的细节请参考 MySQL 的网站 http://www.tcx.se。
范例: --with-mysql=/usr/local/mysql

iODBC 数据库装置
语法: --with-iodbc=DIR
说明: 提供 ODBC 数据库装置，用来存取后端数据库。更多的细节请参考 iODBC 的网站 http://www.iodbc.org。
范例: --with-iodbc=/usr/local/iodbc

OpenLink ODBC 数据库装置
语法: --with-openlink=DIR
说明: 使用 OpenLink ODBC 数据库装置，用来存取后端数据库。更多的细节请参考 OpenLink ODBC 的网站 http://www.openlinksw.com。
范例: --with-openlink=/usr/local/openlink

Oracle 数据库
语法: --with-oracle=DIR
说明: 使用 Oracle 数据库。Oracle 的版本要在 7.3 版以上。您也可以在 PHP 程序中使用环境变量 ORACLE_HOME 来指定 Oracle 的路径。更多有关 Oracle 的信息请参考 Oracle 的网站 http://www.oracle.com。
范例: --with-oracle=/export/app/oracle/product/7.3.2

PostgreSQL 数据库
语法: --with-pgsql=DIR
说明: 使用 PostgreSQL 数据库。更多有关 PostgreSQL 的信息请参考 PostgreSQL 的网站 http://www.postgreSQL.org 或台湾的 Mirror 站 http://postgresql.ccit.edu.tw。
范例: --with-pgsql=/usr/local/pgsql

Solid 数据库
语法: --with-solid=DIR
说明: 使用 Solid 数据库。更多有关 Solid 的信息请参考 Solid 的网站 http://www.solidtech.com。
范例: --with-solid=/usr/local/solid

Sybase 数据库
语法: --with-sybase=DIR
说明: 使用 Sybase 数据库。更多有关 Sybase 的信息请参考 Sybase 的网站 http://www.sybase.com。
范例: --with-sybase=/home/sybase

Sybase-CT 数据库
语法: --with-sybase-ct=DIR
说明: 使用 Sybase-CT 数据库。
范例: --with-sybase-ct=/home/sybase

Velocis 数据库
语法: --with-velocis=DIR
说明: 使用 Velocis 数据库。有关 Velocis 数据库的进一步资料请参考 Raima 公司的网站 http://www.raima.com。
范例: --with-velocis=/usr/local/velocis

自订 ODBC 数据库驱动程序
语法: --with-custom-odbc=DIR
说明: 使用自订的 ODBC 函数库。当然，在使用本方式时要指定 CUSTOM_ODBC_LIBS 及 CFLAGS 变量。例如在 QNX 机器上使用 Sybase SQL Anywhere 时可能要配置系统环境变量 CFLAGS=-DODBC_QNX、LDFLAGS=-lunix 及 CUSTOM_ODBC_LIBS="-ldblib -lodbc"，并要在 PHP 配置加入 --with-custom-odbc=/usr/lib/sqlany50
范例: --with-custom-odbc=/usr/local/odbc

不使用 ODBC 数据库驱动程序
语法: --disable-unified-odbc
说明: 使用本选项将使所有的 ODBC 数据库驱动程序不作用。本选项不用指定路径，而受本选项影响的选项有 --with-iodbc、--with-solid、--with-adabas、--with-velocis 及 --with-custom-odbc。

LDAP 目录协议
语法: --with-ldap=DIR
说明: 若要使用目录协议 (Lightweight Directory Access Protocol, LDAP) 则必须要打开本选项。有关 LDAP 的细节，可以参考 RFC 文件的 RFC1777 及 RFC1778。
范例: --with-ldap=/usr/local/ldap.

mcrypt 编码函数库
语法: --with-mcrypt=DIR
说明: 当安装了 mcrypt 函数库后，可在编译 PHP 时加入本选项，让程序可以使用编解码功能。
范例: --with-mcrypt=/usr/local/include

Sys V 信号
语法: --enable-sysvsem
说明: 要使用 SysV 的信号 (semaphores) 机制，则要打开本选项。

XML 支持
语法: --with-xml
说明: 打开本选项可以支持 James Clark's 写的 XML 解析程序库。

维护模式
语法: --enable-maintainer-mode
说明: 本选项一般不会打开，除非是 PHP 开发人员比较有用。

正则表达式程序库
语法: --with-system-regex
说明: 若您需要额外的正则表达式功能，可以加入本选项。

PHP 配置文件
语法: --with-config-file-path=DIR
说明: 用来指定 php3.ini 或 php4.ini 的路径，供 PHP 初始化时使用。
范例: --with-config-file-path=/usr/local/lib

PHP 执行路径
语法: --with-exec-dir=DIR
说明: 有时为了系统的安全性考虑，会指定 PHP 程序一定要在哪个目录执行。
范例: --with-exec-dir=/usr/local/bin

调试模式
语法: --enable-debug
说明: 本选项一般不会使用，除非在开发 PHP 程序时比较有用。它可以显示额外的错误信息。

安全模式
语法: --enable-safe-mode
说明: 默认值是打开的，可以对系统安全提供比较多的保护。

变量追踪
语法: --enable-track-vars
说明: 让 PHP 能 追踪 HTTP_GET_VARS、HTTP_POST_VARS 及 HTTP_COOKIE_VARS 三个变量，一般是打开的。

自动加引入字符
语法: --enable-magic-quotes
说明: 可让程序在执行时自动加入反斜线的引入字符。

打开调试器
语法: --enable-debugger
说明: 打开内建的 PHP 调试器。目前本功能还在实验阶段，尚未成熟。

取消路径 (discard path)
语法: --enable-discard-path
说明: 打开这个选项，用户就不能透过浏览器读取 .htaccess 等和系统安全相关的文件。

高精确度数学函数
语法: --enable-bcmath
说明: 打开高精确度函数。必须要先安装本函数库，本选项方有效。

强制 CGI 重定向
语法: --enable-force-cgi-redirect
范例: 若使用 CGI VERSION 模式来执行 PHP 的设，打开本选项会增加安全性。例如用户读 http://my.host/cgi-bin/php/secret/doc.html 遇到比较了解 PHP 系统的黑客级用户可能会自已输入以下网址 http://my.host/secret/doc.html 来读取相关信息。若 PHP 和 Apache 编译在一起，让 PHP 变成 Apache 的一部份，则不需要加入本选项。

不使用短的标记
语法: --disable-short-tags
说明: 配置本选项后，PHP 的程序就不能使用短的 <? .... ?> 标记，一定要用 <?php ...... ?> 的长标记。

引入远端档宁
语法: --enable-url-includes
说明: 配置本选项可让 PHP 程序可以引入 (include) 远端的 HTTP 或 FTP 服务器中的文件。

关闭语法效果
语法: --disable-syntax-hl
说明: 使用本选项会关闭 PHP 语法的彩色效果。

函数库路径
语法: CPPFLAGS=-IDIR 及 LDFLAGS=-LDIR
说明: 若 PHP 在安全或编译所需的函数库在值得的路径，需要加入本选项，LDFLAGS 表示函数库的路径，CPPFLAGS 表示标头文件的路径。
范例: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure


php.ini 配置详细选项

php.ini 或 php3.ini 是 PHP 在启动时会读取的配置文件。该文件的存放路径为 /usr/local/lib/。在 PHP 3.x 版的配置文件为 php3.ini；而在 PHP 4.x 版改为 php.ini。若 PHP 安装成服务器的模块，则在 Web 服务器启动执行时会读取，之后就不再读取，因此改动配置的话要重新启动 Web 服务器。若使用独立 PHP CGI 方式，则每次都读一次。

要看目前的系统配置，可以用 phpinfo() 看到。以下为选项配置

php_value name value
配置变量名称和值。本选项需 PHP 4.x 版之后才能使用。

php_flag name on|off
配置标志布尔变量选项。本选项需 PHP 4.x 版之后才能使用。

php_admin_value name value
配置 Apache 的配置文件变量。原来在 .htaccess 的配置改到这个选项配置。本选项需 PHP 4.x 版之后才能使用。

php_admin_flag name on|off
配置布尔变量当标志。本选项需 PHP 4.x 版之后才能使用。

asp_tags boolean
配置 PHP 程序是否解析以 ASP Script 语法 <% %> 的标记 (tag)。本选项在 PHP 3.0.4 之后才可使用。更多的细节可以参考 嵌入方法 的部份。

auto_append_file string
配置本选项可以让指定的文件附加在原 PHP 程序后面自动执行。若 PHP 程序中有用到 exit() 函数，则指定的文件不会执行。参数 string 即为指定自动执行的文件。

auto_prepend_file string
配置本选项可以让指定的文件在原 PHP 程序之前自动执行。参数 string 即为指定自动执行的文件。

cgi_ext string
本选项配置 CGI 程序的扩展名。

display_errors boolean
本选项配置是否要将执行的错误信息显示在用户的浏览器上。

doc_root string
配置服务器的文件及 PHP 文件放置的根目录。

engine boolean
本选项需要使用apache的模块方式使用 PHP。可配置是否要使用 PHP 引擎。在 httpd.conf 中加入 php3_engine on/off 亦可配置某目录或某虚拟网站是否要用 PHP 解析器。

error_log string
本选项用来配置错误记录文件。在 UNIX 系统上参数 string 即为文件名。Windows NT 会将记录记在事件检视器的日志之中。Windows 95/98 则不支持系统记录。

error_reporting integer
本选项用来配置系统记录的等级。参数 integer 即为等级的级数标志，可以加在一起，默认值为 7，见下表
级数 | 说明
1 | 一般的错误
2 | 一般的警告
4 | 解析错误
8 | 非关键的警告

open_basedir string
本选项用来配置提供 PHP 存取的最底层目录。从该指定目录之下的文件或目录，PHP 程序才能存取。使用本选项主要是为了系统安全性的考虑。参数 string 即为要限制的最底层目录节点。值得注意的是在 UNIX 系统中，若该节点之下的文件或目录有符号链结 (symbolic link)，则可能会让使用本选项的目的打折，因此在目录的设计上考虑，也是 Webmaster 的重要任务。默认值是所有文件均可存取。在 PHP 3.0.7 版之后，可以配置多个底层目录。

gpc_order string
配置 GET/POST/COOKIE 三种模块的顺序及规则。参数 string 即为要配置的规则，例如：配置成 "GP" 表示忽视 cookie，并在存取方法 (method) 相同时，以 POST 取代 GET。

ignore_user_abort string
默认值为 Off。用来配置当传输未完成时，用户端断线是要继续处理。

include_path string
为 PHP 程序中 require、include 及 fopen_with_path 等函数的文件搜寻路径。在 UNIX 或 Windows 中的斜线方向不同。

log_errors boolean
指定程序错误时是否要记录在 log 文件中。

magic_quotes_gpc boolean
配置 GET/POST/COOKIE 三种模块的特殊字符，包含单引号、双引号、反斜线、及空字符 (NUL) 是否要自动加入反斜线当溢出字符。

magic_quotes_runtime boolean
配置返回资料是否自动加入反斜线当溢出字符。

magic_quotes_sybase boolean
配置 sybase 资料中单引号要自动加上反斜线当溢出字符。

max_execution_time integer
配置程序最久执行时间。单位是秒。

memory_limit integer
配置程序最多使用多少内存。

short_open_tag boolean
配置是否使用短的 PHP 标记 (<? ?>)。若不使用，则必须要用 <?php 作为程序的开头，若要使程序合乎 XML 的标准则要关闭本功能。

track_errors boolean
打开本选项可使最后的错误信息跟着全局变量 $php_errormsg。

track_vars boolean
打开本选项可让用户输入的字符串自动解析到变量之中，而不用自己处理。

upload_tmp_dir string
指定上传文件临时路径。

user_dir string
指定用户根目录的路径。

warn_plus_overloading boolean
若打开本选项，字符串间就只能用英文的句号 (.) 链接，而不能用加号 (+) 链接字符串。

SMTP string
在 Windows 系列操作系统中，用来指定 SMTP 服务器，供 mail 函数使用。参数 string 为 SMTP 服务器名字。

sendmail_from string
配置 "From: " 字符串供 Windows 系列操作系统使用 mail 函数。

sendmail_path string
配置 sendmail 程序的放置路径。例如 /usr/sbin/sendmail。

safe_mode boolean
配置 PHP 在安全模式下执行。

safe_mode_exec_dir string
配置安全模式程序执行的路径。

debugger.host string
指定远端调试的服务器名称，可以是 IP 或 Domain Name。

debugger.port string
配置远端调试服务器的端口 (port)。

debugger.enabled boolean
配置是否可以为调试模式。

enable_dl boolean
本选项要使用apache模块 (Apache module) 的方式才有效。用来配置 PHP 的 dl() 函数可否作用。当系统处于安全模式 (safe-mode) 时，本选项 enable 也无法使用 dl() 函数。

extension_dir string
配置动态函数的路径。

extension string
PHP 启动时所要载入的动态扩充功能。

mysql.allow_persistent boolean
配置是否允许 MySQL 数据库持续连接 (persistent connections)，会影响 mysql_pconnect() 函数。

mysql.max_persistent integer
配置每个处理程序最多保持几个 MySQL 持续连接。

mysql.max_links integer
配置每个处理程序最多开几个 MySQL 连接，包括持续连接。

msql.allow_persistent boolean
配置是否允许 mSQL 数据库持续连接 (persistent connections)，会影响 msql_pconnect() 函数。

msql.max_persistent integer
配置每个处理程序最多保持几个 mSQL 持续连接。

msql.max_links integer
配置每个处理程序最多开几个 mSQL 连接，包括持续连接。

pgsql.allow_persistent boolean
配置是否允许 Postgres 数据库持续连接 (persistent connections)，会影响 pg_pConnect() 函数。

pgsql.max_persistent integer
配置每个处理程序最多保持几个 Postgres 持续连接。

pgsql.max_links integer
配置每个处理程序最多开几个 Postgres 连接，包括持续连接。

sybase.allow_persistent boolean
配置是否允许 Sybase 数据库持续连接 (persistent connections)，会影响 sybase_pconnect() 函数。

sybase.max_persistent integer
配置每个处理程序最多保持几个 Sybase 持续连接。

sybase.max_links integer
配置每个处理程序最多开几个 Sybase 连接，包括持续连接。

sybct.allow_persistent boolean
配置是否允许 Sybase-CT 数据库持续连接 (persistent connections)，默认值是打开的。

sybct.max_persistent integer
配置每个处理程序最多保持几个 Sybase-CT 持续连接。默认值为 -1 表示无限制。

sybct.max_links integer
配置每个处理程序最多开几个 Sybase-CT 连接，包括持续连接。默认值为 -1，表示没有限制。

sybct.min_server_severity integer
配置 Sybase-CT 服务器错误报告的最少笔数。默认值为 10。

sybct.min_client_severity integer
配置 Sybase-CT 客户端错误报告的最少笔数。默认值为 10。

sybct.login_timeout integer
配置 Sybase-CT 最久可以使用的登入时间。默认值为 1 分钟。

sybct.timeout integer
配置 Sybase-CT 的 query 操作时间限制。默认值为无限制。

sybct.hostname string
配置 Sybase-CT 可连接机器名称。默认值不设限

ifx.allow_persistent boolean
配置是否允许 Informix 数据库持续连接 (persistent connections)，会影响 ifx_pconnect() 函数。

ifx.max_persistent integer
配置每个处理程序最多保持几个 Informix 持续连接。

ifx.max_links integer
配置每个处理程序最多开几个 Informix 连接，包括持续连接。

ifx.default_host string
配置 Informix 默认连接的服务器名称，供 ifx_connect() 或 ifx_pconnect() 函数使用。

ifx.default_user string
配置 Informix 默认连接的用户帐号，供 ifx_connect() 或 ifx_pconnect() 函数使用。

ifx.default_password string
配置 Informix 默认连接的用户密码，供 ifx_connect() 或 ifx_pconnect() 函数使用。

ifx.blobinfile boolean
配置 Informix 长位类模式，0 表在内存；1 表在文件中。亦可以在 PHP 程序中使用 ifx_blobinfile_mode() 函数来修改。

ifx.textasvarchar boolean
配置 Informix 文字模式默认值，0 表返回 blob 的代码；1 表返回 varchar 字符串。亦可在 PHP 程序中使用 ifx_textasvarchar() 函数来修改配置。

ifx.byteasvarchar boolean
配置 Informix 位组模式默认值，0 表返回 blob 的代码；1 表返回 varchar 字符串。亦可在 PHP 程序中使用 ifx_byteasvarchar() 来修改配置。

ifx.charasvarchar boolean
配置 Informix 返回字符串的字尾空格是否要自动去除。

ifx.nullformat boolean
配置 NULL 字段的返回方式，true 表示返回字符串 NULL，false 表格返回字符串 ""。亦可在 PHP 程序中以 ifx_nullformat() 修改。

bcmath.scale integer
配置 BC 高精确度函数库的小数点位数。

browscap string
配置浏览器的开文件能力名。

uodbc.default_db string
配置 ODBC 默认连接的数据库名称，供 odbc_connect() 或 odbc_pconnect() 函数使用。

uodbc.default_user string
配置 ODBC 默认连接的用户帐号，供 odbc_connect() 或 odbc_pconnect() 函数使用。

uodbc.default_pw string
配置 ODBC 默认连接的用户密码，供 odbc_connect() 或 odbc_pconnect() 函数使用。

uodbc.allow_persistent boolean
配置是否允许 ODBC 数据库持续连接 (persistent connections)，会影响 odbc_pconnect() 函数。

uodbc.max_persistent integer
配置每个处理程序最多保持几个 ODBC 持续连接。

uodbc.max_links integer
配置每个处理程序最多开几个 ODBC 连接，包括持续连接。

以下和 session 有关的配置值，都在 PHP 4.x 以上的版本方支持。在 php.ini 的配置文件中。

session.save_handler
定义 session 储存资料的文件名称。默认值为 files。

session.save_path
定义 session 储存资料的文件路径。默认值为 /tmp。

session.name
配置 session 所使用的 cookie 名称。默认值为 PHPSESSID。

session.auto_start
配置 session 是否自动打开。默认值为 0 (否)。

session.lifetime
配置 cookie 送到浏览器后的保存时间，单位为秒。默认值为 0，表示直到浏览器关闭。

session.serialize_handler
定义连续/解连续资料的标头，本功能只有 WDDX 模块或 PHP 内部使用。默认值为 php。

session.gc_probability
配置每笔要求回应时的废物蒐集 (gc, garbage collection) 处理机率。默认值为 1。

session.gc_maxlifetime
配置废物被清除前的存活秒数。

session.extern_referer_check
决定参照到客户端的 Session 代码是否要删除。有时在安全或其它考虑时，会配置不删除。默认值为 0。

session.entropy_file
配置 session 代码建立时，使用外部高熵值资源或文件来建立，例如 UNIX 系统上的 /dev/random 或 /dev/urandom。

session.entropy_length
配置 session 从高熵值资源读取的位组数。默认值为 0。

session.use_cookies
配置是否要将 session 变成 cookie 存在用户端。默认值为 1，表是打开本功能。


如何写作 PHP 程序

如果只会用 Frontpage、Dreamweaver 的所见即所得编辑模式来写网页，而完全不懂 HTML 的语法，恐怕要先下点功夫了解 HTML 语法，才能顺利的写 PHP 程序了。如果早就非常了解 HTML 幕后排版语言的语法，那么应该可以马上开始 PHP 的程序写作了。在 PHP 这种后端服务器的程序语言，下苦功去学习 HTML 是写作的必备条件。

对熟悉 Windows 系列系统平台的用户，有套软件倒是在开发 PHP 程序上是蛮方便的，就是 PHP Editor，若对这软件有兴趣，不妨到 http://www.soysal.com/PHPEd 下载最新的版本。同时还需要下载 PHP 程序 Win32 的版本。安装好 PHP Win32 版后，在 PHP Editor 中配置好 PHP Win32 的路径，就可以让您轻松地开发 PHP 程序了。至于在写作 PHP 程序的工作平台上，有没有 Web 服务器倒是不重要，因为在 PHP Editor 的环境中写好的程序，按下执行的键后，由 PHP Editor 直接将所写的 PHP 程序送给 PHP Win32，并将执行结果处理后，呈现在用户的面前。

若您和笔者一样，对 Linux/UNIX 很偏执，或许可以尝试使用 Bluefish: 蓝鱼 PHP 写作工具，只要装好 Linux 及 X-Window 之后就可以使用了。要使用中文的话，需要在 X-Window 加入中文的字型及输入法，要方便的话，使用 RedHat 加上 CLE 中文支持就好了。

假使您已是老 Linux/UNIX 了，也不喜欢使用这些专门的开发工具。相信您对 vi 或是 Emacs 一定相当熟悉，那么就在装好 Web 服务器和 PHP 程序后，直接用 vi 或 Emacs 写 PHP 程序就可以了，并且可以直接看到执行的真正结果，和数据库或是其它的服务程序链接，也不会有什么问题。这种「所写即所得」的方式，岂不痛快!!


hello, world

在 K&R 二教授的经典名著 The C Programming Language 一书中的 "hello, world" 几乎已经变成了所有程序语言的第一个范例。因此，在这儿也用 PHP 来写个最基本的 "hello, world" 程序。

<html>
<head>
<title>First program</title>
</head>
<body>
<?php
echo "hello, world\n";
?>
</body>
</html>

这十行程序在 PHP 中不需经过编译等复杂的过程，只要将它放在配置好可执行 PHP 语法的服务器中，将它存成文件 helloworld.php 好了。在用户的浏览器端，只要在 Location: 输入 http://some.hostname/helloworld.php，就可以在浏览器上看到 hello, world 字符串出现。

我们可以看到，这个程序只有三行有用，其它六行都是标准的 HTML 语法。而它在返回浏览器时和 JavaScript 或 VBScript 完全不一样，PHP 的程序没有传到浏览器，只在浏览器上看到短短的几个字 "hello, world"。

在第六行及第八行，分别是 PHP 的开始及结束的嵌入符号。第七行才是服务器端执行的程序。在这个例子中，"\n" 和 C 语言的表示都一模一样，代表换行的意思。在第一章也有介绍过 PHP 是混合多种语言而成，而 C 正是含量最多的语言。在一个表达式结束后，要加上分号代表结束。

图二: 在浏览器上看到 PHP 写的 hello, world 程序


嵌入方法

要将 Homepage 中放入 PHP，有以下数种做法

  1. <? echo ("这是一个 PHP 语言的嵌入范例\n"); ?>

  2. <?php echo("这是第两个 PHP 语言的嵌入范例\n"); ?>

  3. <script language="php">
    echo ("这是类似 JavaScript 及 VBScript 语法
    的 PHP 语言嵌入范例"    );
    </script>

  4. <% echo ("这是类似 ASP 嵌入语法的 PHP 范例"); %>

其中第一种及第两种是最常用的两个方法，在小于符号加上问号后，可以加也可以不加 php 三个字，之后就是 PHP 的程序码。在程序码结束后，加入问号大于两个符号就可以了。第三种方法对熟悉 Netscape 服务器产品的 Webmaster 人员而言，有相当的亲切感，它是类似 JavaScript 的写作方式。而对于从 Windows NT 平台的 ASP 投向 PHP 的用户来说，第四种方法似曾相似，只要用 PHP 3.0.4 版本以后的服务器都可以用小于百分比的符号开始，以百分比大于结束 PHP 的部分，但想用第四种方法的用户别忘了在 php.ini 加入 asp_tags 或是在编译 PHP 时加入 --enable-asp-tags 的选项，才能使第四种方法有效。建议少用第四种方法，当 PHP 与 ASP 源代码混在一起时就麻烦了。

其实，在写作 PHP 的程序最好的方法，就是先处理好纯 HTML 格式的 Homepage 文件之后，再将需要变量或其它处理的地方改成 PHP 程序。这种方法，可以让您在开发上达到事半功倍的效果。


引用文件

PHP 最吸引人的特色之一大概就是它的引用文件了。用这个方法可以将常用的功能写成一个函数，放在文件之中，然后引用之后就可以调用这个函数了。

引用文件的方法有两种：require 及 include。两种方式提供不同的使用弹性。

require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面，PHP 程序在执行前，就会先读入 require 所指定引入的文件，使它变成 PHP 程序网页的一部份。常用的函数，亦可以这个方法将它引入网页中。

include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时，才将它读进来。这种方式，可以把程序执行时的流程简单化。

在 PHP 的官方网站中，每页都可以看到原始程序，更是处处看到这两种引入文件的方法。


程序注释

在 PHP 的程序中，加入注释的方法很灵活。可以使用 C 语言、C++ 语言或者是 UNIX 的 Shell 语言的注释方式，而且也可以混合使用。这可以让每个写 PHP 网页程序的 Webmaster 或 Programmer 发展出属于自己的写作风格。

<?php
echo "这是第一种例子。\n"; // 本例是 C++ 语法的注释
/* 本例采用多行的
注释方式 */
echo "这是第两种例子。\n";
echo "这是第三种例子。\n"; # 本例使用 UNIX Shell 语法注释
?>

不过在使用多行注释时请注意，不能让注释陷入递归循环当中，否则会引起错误。

<?php
  /*
  echo "这是错误的示范。\n"; /* 递归注释会引起问题 */
  */
?>


常量类型

PHP 在常量中定义了以下一些常量。

__FILE__
这个默认常量是 PHP 程序文件名。若引用文件 (include 或 require)则在引用文件内的该常量为引用文件名，而不是引用它的文件名。

__LINE__
这个默认常量是 PHP 程序行数。若引用文件 (include 或 require)则在引用文件内的该常量为引用文件的行，而不是引用它的文件行。

PHP_VERSION
这个内建常量是 PHP 程序的版本，如 '3.0.8-dev'。

PHP_OS
这个内建常量指执行 PHP 解析器的操作系统名称，如 'Linux'。

TRUE
这个常量就是真值 (true)。

FALSE
这个常量就是伪值 (false)。

E_ERROR
这个常量指到最近的错误处。

E_WARNING
这个常量指到最近的警告处。

E_PARSE
本常式为解析语法有潜在问题处。

E_NOTICE
这个常式为发生不寻常但不一定是错误处。例如存取一个不存在的变量。

这些 E_ 开头形式的常量，可以参考 error_reporting() 函数，有更多的相关说明。

当然在程序写作时，以上的默认常量是不够用。define() 的功能可以让我们自行定义所需要的常量。见下例

<?php
define("COPYRIGHT", "Copyright &copy; 2000, netleader.126.com");
echo COPYRIGHT;
?>


变量类型

PHP 的变量类型不多，有以下五种：

  • string
  • integer
  • double
  • array
  • object
string 即为字符串变量，无论是单一字符或数千字的字符串都是使用这个变量类型。值得注意的是要指定字符串给字符串变量，要在头尾加上双引号 (例如: "这是字符串")。在要让字符串换行时，可使用溢出字符，也就是反斜线加上指定的符号，若是 \x 加上二位数字，如 \xFE 即表十六进位字符，详见下表：

符号 | 意义
\" | 双引号
\\ | 反斜线
\n | 换行
\r | 送出 CR
\t | 跳位 (TAB)

integer 为整数型别。在 32 位的操作系统中，它的有效范围是 -2,147,483,648 到 +2,147,483,647。要使用 16 进位整数可以在面加 0x。

double 为浮点数型别。在 32 位的操作系统中，它的有效范围是 1.7E-308 到 1.7E+308。

array 为数组变量，可以是二维、三维或者多维数组，其中的元素也很自由，可以是 string、integer 或者 double，甚至是 array。

object 为类变量，目前在 PHP 中的类不多，若论及类，Microsoft 的 ASP 类仍然较 PHP 的默认类多，相信这有赖大家的努力。不过话又说回来，Web CGI 程序要求的是效率，以完全面向对象的方式，恐怕用户在浏览时也会因为程序执行速度慢而很不耐烦吧。

要使用变量，只要在英文字符串前面加个美元号 $ 即可，目前变量名称仍不能使用中文。至于变量的大小写是不一样的，对开发 PHP 程序的 TEAM 来说，最好使用相同的变量使用风格，以免届时因为变量大小的问题，花许多无谓的时间去找寻问题点，那就麻烦了。

以下为变量的使用范例：

$mystring = "我是字符串";
$WilsonPeng = "真是认真的作者";
$NewLine = "换行了\n";

$int1 = 38;
$int2 = 49;
$hexint = 0x10;

$float1 = 1.732;
$float2 = 1.4E+2;

$MyArray1 = array("子", "丑", "寅", "卯");
$MyArray2 = array(
"地支" => array("子", "丑", "寅", "卯"),
"生肖" => array("鼠", "牛", "虎", "兔"),
"数字" => array(1, 2, 3, 4)
);

类的使用上就比较麻烦了，要先定义类别，甚至必须先要方法，才能使用类，如下例：

class foo {
function do_foo () {
echo "Doing foo.";
}
}

$bar = new foo;
$bar -> do_foo ();

更多有关类的讨论，参考 类

此外，还有布尔值 (boolean)，通常 1 即为 true，0 为 false。

在变量之间，若要转换类型，在 PHP 程序中是很自由的，直接就拿来用了，不必经过特殊的转换函数。当然，浮点数转成整数就有点牵强了，不过可以将浮点数转成字符串，也是很好处理。


变量的使用

就像大部份的结构化程序，有所谓的全局变量与局部变量，PHP 在这方面也是有相同的处理方式。

在 PHP 的程序执行时，系统会在内存中保留一块全局变量的区域。实际运用时，可以透过 $GLOBALS["变量名称"] 将需要的变量取出。在用户自定的函数或程序中，就可以用 $GLOBALS 数组取出需要的变量。当然别忘了 PHP 的变量有分大小写，搞错了大小写可是叫一百年，变量也不会出来。

$GLOBALS 数组是 PHP 程序中比较特殊的变量，不必定义，系统会自动匹配相关的变量在里面。在函数中，也不必管 $GLOBALS 数组是否已经做全局定义，就可以直接使用了。

和 $GLOBALS 变量类似的还有 $php_errormsg 字符串变量。若 PHP 的配置文件 (php.ini/php3.ini) 中的 track_errors 选项打开的话，会有全局变量 $php_errormsg 可以看到错误的信息。

在 PHP 中，全局变量的有效范围 (scope) 仅限于主要程序中，不会影响到函数中同名的变量，也就是全局变量与局部变量互不侵犯。若要变量能通透到函数中，就要用到 $GLOBALS 数组或是使用 global 定义。

例如，在自行开发的函数中，要取得目前执行 PHP 程序页面的文件名，就可以用 $GLOBALS["PHP_SELF"] 取出 $PHP_SELF 的值。

<?php
// 本程序使用 $GLOBALS 数组
function myfunc() {
echo $GLOBALS["PHP_SELF"];
}
myfunc();
?>

下面是错误的示范，请勿模仿，上面的才是正确的示范。

<?php
// 这是错误的示范
function errfunc() {
echo $PHP_SELF;
}
errfunc();
?>

但是这个错误的示范要是改成下例就没问题了

<?php
// 本程序使用全局定义
function myfunc() {
global $PHP_SELF;
echo $PHP_SELF;
}
myfunc();
?>

在变量前面加上 global 的名称，就是定义该变量为全局变量。用这种方式，就不需使用 $GLOBALS 数组，也能让变量进入自行开发的函数中。

接下来先看静态变量的例子

<?php
// 静态变量的例子
function myfunc() {
static $mystr;
$mystr.="哈";
echo $mystr."<br>\n";
}
myfunc(); // 哈
myfunc(); // 哈哈
myfunc(); // 哈哈哈
?>

函数在执行时所产生的变量，在函数结束时就消失了，有时因为程序的需要，函数在循环中，当不希望变量在每次执行完函数就消失的话，静态变量 (static variable) 就派上用场了。上例中，使用 $mystr 变量之前，先在变量前面加上 static，即表示变量 $mystr 是静态变量，当每次执行 myfunc() 函数时，$mystr 的值会一直增加，每执行一次就多一个哈字。若将 static 的静态变量定义拿掉，就没办法累加哈字了。

<?php
// 不是静态变量的例子 (错误的)
function myfunc() {
$mystr.="哈";
echo $mystr."<br>\n";
}
myfunc(); // 哈
myfunc(); // 哈
myfunc(); // 哈
?>

再看一个比较实际的例子，它是处理表格的颜色，让隔行的颜色不同。

<?php
function TdBackColor() {
static $ColorStr;
if ($ColorStr=="808080") {
$ColorStr="c0c0c0";
} else {
$ColorStr="808080";
}
return($ColorStr);
}
echo "<table border=1>\n";
for ($i=0; $i<10; $i++) {
$ColorStr=TdBackColor();
echo "<tr><td bgcolor=".$ColorStr.">这是第".$i."行</td></tr>\n";
}
echo "</table>";
?>

PHP 的变量使用技巧上，最令人觉得不可思议的则是变量的变量 (variable variable)。这是充分利用 PHP 特性玩出的特殊技巧

<?php
$a = "Hello";
$$a = "world";
echo "$a, $hello"; // Hello, world
echo "$a, {$a}"; // 也是 Hello, world
?>

mdean@kcnet.com 举出一个更绝的例子 (24-Apr-1999)，他称为变量的函数 (variable function)

<?php
function myCallbackFunction()
{
print("Hello from callback");
}

function myFunction($callback)
{
$callback();
}
// call to myFunction passing callback
// function as parameter
myFunction("myCallbackFunction");
?>

至于用户在 FORM 中输入的资料，要怎么处理呢？要是在 PHP 的配置文件中，track_vars 设为 On 时，直接使用变量名字就好了。如下例，next.php 在执行时，系统会自动产生两个变量 $username 及 $sex，直接使用就好了，比起传统的 CGI 要自己解析，PHP 实在是太神奇了。

<form action=next.php method=post>
姓名: <input type=text name="username"><br>
性别: <input type=text name="sex"><br>
<input type=submit>
</form>

由于 PHP 许多语法都是 C 语言的翻版，故 PHP 在使用变量时，随时都可以使用新的变量，只要在使用前将变量初始化就好了，不必像 Pascal 语言那样严谨，所有要使用的变量都要事先定义。这当然有好处与坏处：好处是使用方便、自由；坏处就是常常因这些自由而付出相当大的代价调试。在程序码短的 PHP 程序当然不成问题，当程序在数百数千行，甚至 include 或 require 好几层之后，问题就浮现出来了。无论如何，保持良好的写作习惯才是避免浪费青春的方法。


运算符号

运算符号可以用来处理数字、字符串及其它需要比较运算的条件。PHP 的运算符号和 C 语言的运算符号与很类似，对于有经验的程序设计人员，应可以很顺利的掌握 PHP 的运算符号。

不同的运算符号，其实还是有优先顺序，就像小时候在学数学时，老师会教：先乘除、后加减。在 PHP 的运算优先顺序可以参考下面的表格，在混合式的情形下，愈往下表示优先权愈高。至于符号代表的意义，散见于以下的章节中。

运算符号 | 结合规则
, | 左至右
or | 左至右
xor | 左至右
and | 左至右
.= &= |= /= %= ^= = += -= *= | 左至右
? : | 左至右
|| | 左至右
&& | 左至右
| | 左至右
^ | 左至右
& | 左至右
== != | 不限
< <= >= > | 不限
<< >> | 左至右
+ - . | 左至右
* / % | 左至右
! ~ ++ -- @ | 右至左
[] | 右至左

就像先哲说的：物有本末、事有终始，知所先后，则近道矣，在运算时只要照着运算优先顺序写出来的程序，应该不会发生结果和预期不同的情形。在写作时多注意细节，可以减少调试的痛苦！


算术运算

算术运算 (arithmetic operators) 符号，就是用来处理四则运算的符号，这是最简单，也最常用的符号，尤其是数字的处理，几乎都会使用到算术运算符号。

符号 | 意义
+ | 加法运算
- | 减法运算
* | 乘法运算
/ | 除法运算
% | 取余数
++ | 累加
-- | 递减

以下为简单的算术运算范例

<?php
$a = 8;
$b = 2;
$c = 3;
echo $a+$b."<br>\n";
echo $a-$b."<br>\n";
echo $a*$b."<br>\n";
echo $a/$b."<br>\n";
echo $a%$c."<br>\n";
$a++;
echo $a."<br>\n";
$c--;
echo $c;
?>


字符串运算

字符串运算 (string operator) 的运算符号只有一个，就是英文的句号 .。它可以将字符串连接起来，变成合并的新字符串。

以下是字符串运算的例子

<?php
$a = "PHP 4";
$b = "功能强大";
echo $a.": ".$b;
?>


赋值运算

赋值运算 (assignment operator) 有时会让人搞得一头雾水，不过它可以让程序更精简，增加程序的执行效率。

符号 | 意义
= | 将右边的值连到左边
+= | 将右边的值加到左边
-= | 将右边的值减到左边
*= | 将左边的值乘以右边
/= | 将左边的值除以右边
%= | 将左边的值对右边取余数
.= | 将右边的字符串加到左边

<?php
$a = 5;
$a += 2; // 即 $a = $a + 2;
echo $a."<br>\n";
$b = "哇";
$b .= "哈"; // $b = "哇哈";
$b .= "哈"; // $b = "哇哈哈";
echo "$b<br>\n";
?>


位运算

PHP 的位运算子 (bitwise operators) 共有六个，提供数字做一些快速而低阶的运算。要了解更多有关位运算的信息，可以参考离散数学方面的书籍。

符号 | 意义
& | 且 (And)
| | 或 (Or)
^ | 异或 (Xor)
<< | 向左移位
>> | 向右移位
~ | 取 1 的补数


逻辑运算

逻辑运算 (logical operators) 通常用来测试真假值。最常见到的逻辑运算就是循环的处理，用来判断是否该离开循环或继续执行循环内的指令。

符号 | 意义
< | 小于
> | 大于
<= | 小于或等于
>= | 大于或等于
== | 等于
!= | 不等于
&& | 而且 (And)
and | 而且 (And)
|| | 或者 (Or)
or | 或者 (Or)
xor | 异或 (Xor)
! | 不 (Not)

<?
$a = 5;
if ($a != 5) {
echo "&#036;a 不是 5";
} else {
echo "&#036;a 是 5";
}
?>


其它运算符号

除了上述的运算符号之外，还有一些运算符号难以归类。

符号 | 意义
$ | 变量
& | 变量的地址 (加在变量前)
@ | 不显示错误信息 (加在函数前)
-> | 类的方法或者属性
=> | 数组的元素值
? : | 三元运算子

其中比较特殊的是三元运算子 ? :，以下例来解释

(expr1) ? (expr2) : (expr3);

若 expr1 的运算结果为 true，则执行 expr2；否则执行 expr3。实际上它有点类以 if...else 循环，但可以让程序较精简有效率。


流程控制

由于 PHP 的大部份语法都是继承了 C 语言的语法，因此，在流程控制方面，也是有着和 C 语言极类似的循环。PHP 的循环不像 ASP 般可以使用 goto 的 BASIC 语法，PHP 是结构化的程序语言，流程的设计上有一定的规定，而不能用 BASIC 的概念来乱跳到别的部分中。

PHP 的语法没有像 C 语言的 main(){} 部分，其实整个 PHP 主页面 (就是浏览器输入的 URL) 就是 main(){} 部分，这点和其它的解析程序，如 Prel、Python、Shell Script 倒是很像。

在流程的部分分隔符号上，都是使用 { 当作部分的开头，用 } 当作结尾，和 C 语言相同。不过 C 可以定义 begin 当开头、end 当结尾 (像 Pascal)，而 PHP 中不能做这种特殊的定义。

而 PHP 语法中在每条指令结束时都要加上分号 ;，但是在部分结尾符号 } 后面不用加上分号结束。


if..else 循环

if..else 循环有三种结构

第一种是只有用到 if 条件，当作单纯的判断。解释成 "若发生了某事则怎样处理"。语法如下：

if (expr) {
  statement
}

其中的 expr 为判断的条件，通常都是用逻辑运算符号 (logical operators) 当判断的条件。而 statement 为符合条件的执行部分程序，若程序只有一行，可以省略大括号 {}。

范例：本例省略大括号。

<?php
if (date("D") == "Sat") echo "周末了，狂欢去";
?>

范例：本例的执行部分有三行，不可省略大括号。

<?php
if (file_exists("/usr/local/lib/php3.ini")) {
echo "以下是 PHP3 的配置文件<p><pre>\n";
readfile("/usr/local/lib/php3.ini");
echo "</pre>\n";
}
?>

第两种是除了 if 之外，加上了 else 的条件，可解释成 "若发生了某事则怎样处理，否则该如何解决"。语法如下

if (expr) {
  statement1
} else {
  statement2
}
范例：上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令，因此不用加上大括号。

<?php
$f="/usr/local/lib/php3.ini";
if (file_exists($f)) {
echo "以下是 PHP3 的配置文件<p><pre>\n";
readfile($f);
echo "</pre>\n";
} else echo "很抱歉，找不到 $f";
?>

第三种就是递归的 if..else 循环，通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。

直接看下面的例子

<?php
if ($a > $b) {
echo "a 比 b 大";
} elseif ($a == $b) {
echo "a 等于 b";
} else {
echo "a 比 b 小";
}
?>

上例只用二层的 if..else 循环，用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时，请小心使用，因为太多层的循环容易使设计的逻辑出问题，或者少打了大括号等，都会造成程序出现莫名其妙的问题。


do..while 循环

do..while 是重复叙述的循环，可以分成两种模式。

最单纯的就是只有 while 的循环。用来在指定的条件内，不断地重覆指定的步骤。语法如下

while (expr) {
  statement
}

其中的 expr 为判断的条件，通常都是用逻辑运算符号 (logical operators) 当判断的条件。而 statement 为符合条件的执行部分程序，若程序只有一行，可以省略大括号 {}。

下例很有趣，要电脑的浏览器出现十次 "以后不敢了" 的字符串，前面并加上数字，表示说了第几次不敢了。(感觉好像是 Web Server 做错事被处罚)

<?php
$i = 1;
while ($i <= 10) {
print $i++;
echo ". 以后不敢了<br>\n";
}
?>

while 可以不用大括号来包住执行部分，而使用冒号加上 endwhile。见下例

<?php
$i = 1;
while ($i <= 10):
print $i++;
echo ". 以后不敢了<br>\n";
endwhile;
?>

另外一种 do..while 循环则先执行，再判断是否要继续执行，也就是说循环至少执行一次，有点像是先斩后奏的方法。这种的循环，和单用 while 是不同的 (单用 while 是先判断再处理)。若读者熟 Pascal 语言的话，会发现 do..while 循环像是 Pascal 的 repeat..until 循环。

do..whilte 的语法如下

do {
  statement
} while (expr);


for 循环

for 循环就单纯只有一种，没有变化，它的语法如下

for (expr1; expr2; expr3) {
  statement
}

其中的 expr1 为条件的初始值。expr2 为判断的条件，通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份，用来改变条件，供下次的循环判断，如加一..等等。而 statement 为符合条件的执行部分程序，若程序只有一行，可以省略大括号 {}。

下例是用 for 循环写的 "以后不敢了" 的例子，可以拿来和用 while 循环的比较。

<?php
for ($i=1; $i<=10; $i++) {
echo "$i. 以后不敢了<br>\n";
}
?>

从上例中，可以很明显的看到，用 for 和用 while 的不同。实际应用上，若循环有初始值，且都要累加(或累减)，则使用 for 循环比用 while 循环好。例如将资料从数据库取出，可能用 for 循环会比用 while 循环适合?


switch 循环

switch 循环，通常处理复合式的条件判断，每个子条件，都是 case 指令部分。在实作上若使用许多类似的 if 指令，可以将它综合成 switch 循环。

语法如下

switch (expr) {
  case expr1:
    statement1;
    break;
  case expr2:
    statement2;
    break;
    :
    :
  default:
    statementN;
    break;
}

其中的 expr 条件，通常为变量名称。而 case 后的 exprN，通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。

<?php
switch (date("D")) {
case "Mon":
echo "今天星期一";
break;
case "Tue":
echo "今天星期二";
break;
case "Wed":
echo "今天星期三";
break;
case "Thu":
echo "今天星期四";
break;
case "Fri":
echo "今天星期五";
break;
default:
echo "今天放假";
break;
}
?>

很明显的，上述的例子用 if 循环就很麻烦了。当然在设计时，要将出现机率最大的条件放在最前面，最少出现的条件放在最后面，可以增加程序的执行效率。上例由于每天出现的机率相同，所以不用注意条件的顺序。


其它的流程控制

除了上面的流程控制指令之外，尚有 break 及 continue 两个流程控制指令。

break 用来跳出目前执行的循环，如下例

<?php
$i = 0;
while ($i < 10) {
if ($arr[$i] == "stop") {
break;
}
$i++;
}
?>

continue 立即停止目前执行循环，并回到循环的条件判断处，见下例

<?php
while (list($key,$value) = each($arr)) {
if ($key % 2) { // 略过偶数
continue;
}
do_something_odd ($value);
}
?>

而 BASIC 常用的 goto 在 C 及 Borland Pascal 中或许可以使用。但在 PHP 中，由于它的 Web Server Script 特性以及结构化的组成，并不能在 PHP 中使用 goto 循环指令?


函数

在 PHP 中，允许程序设计者将常用的流程或者变量等元件，组织成一个固定的格式。也就是说用户可以自行组合函数或者是类。

PHP 中的函数 (function) 和 C 语言一样，包括有返回值及无返回值，不像 Pascal 分成函数 (function) 和程序 (procedure) 那么复杂。

在函数的名称上，PHP 对于大小写的管制很松散。可以在定义函数时写成大写的名字，而在使用时使用小写的名字。总之，对函数而言，不用管大小写，只要注意名称没有重复就好了。

以下就是函数的使用语法

function myfunc($arg_1, $arg_2, ..., $arg_n) {
  // 执行一些步骤
  return $retval;
}

在使用时，在自定的函数名称前要加入 function 的保留字，表示这是定义用户自定函数。之后的 myfunc 可以是任何的英文字母开头的字符串，字符串除了开头不能是数字或是下划线，在第一个字母后可以是阿拉伯数字或者是下划线，当然其它的符号或是中文字不能当函数名。

$arg_1 到 $arg_n 为函数使用的参数，参数之间使用逗号隔开。在参数后的大括号 {}，即为整个函数的部分。函数如果返回值，使用 return 可将值返回。而参数可以事先定义初始值或默认值。有定义默认值参数在使用函数时可以省略，但一定要放在没有配置默认值参数的后面，否则 PHP 在解析函数时，会出现错误。

另外就是参数的类型，只要参数是 PHP 支持的变量类型都可以使用，无论是数组、字符串、或是整数....等等。返回值也是一样。

下面即为使用默认值及不用默认值例子

<?php
function myfunc1($arg_1, $arg_2, $arg_3="我是默认字符串") {
echo $arg_1+$arg_2;
echo $arg_3."<p>\n";
}

myfunc(3, 4); // 参数 $arg_3 省略。
myfunc(6, 6, "不用默认值") // 输入参数 $arg_3。
?>

参数的值，通常使用传值方式输入，有时在值得的需求时，可以使用传址的方式，传入参数的指针。方法就是在参数的前面加上 & 符号即可。如下例

<?php
function myfunc2(&$argstr) {
$argstr=ereg_replace("/", "-", $argstr);
}

$today="2000/01/01";
myfunc2($today);
echo $today; // 2000-01-01;
?>


类

用户定义的类，也是学好 PHP 所必备的条件之一。而 PHP 的类，和其它的面向对象语言比较起来，还算蛮单纯的。PHP 只有类别 (class)、方法 (method)、属性、以及单一继承 (extensions) 等。对不习惯使用 C++、Java、Delphi 等面向对象语言来开发程序的用户，不妨先阅读一下有关面向对象概念的书，相信可以带来许多的收获。

下面的范例是手推车类。可以看到，使用 class 表示它是一个类类别。在类别中的 function，例如 add_item 则表示该类的一个方法。方法可以封装类的实际处理情形，让该类自己能依封装好的方法来执行一些步骤。

程序中的 $this 类变量也和 $GLOBALS 及 $php_errormsg 两个变量一样，在 PHP 中属于特殊的变量。$this 变量只用在类类别中，表示类的本身。

<?php
// 程序名: cart.inc
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;
} else {
return false;
}
}
}
?>

要使用手推车可以用类似下例的方式。可以先将每个类存成 Include 文件，再将它 require 或 include 进来。在定义变量 $cart 时，要使用 new 的保留字，表示 $cart 使用 Cart 类。使用 -> 符号，表示执行类的方法。

<?php
require("cart.inc");
$cart = new Cart;
$cart->add_item("10", 1);
?>

之后再设计有记名的手推车。记名手推车从手推车遗传下来，因此手推车拥有的方法及属性，记名手推车也有，而记名手推车比手推车增加了名字的方法 (或许该称属性较恰当)。

从下例中可以看到，子类 Named_Cart 使用 extends 来继承其父类 Cart。虽然 Named_Cart 类中没有增加物品及减少物品的方法，不过由于遗传的特性，父类有的东西它都有。

<?php
// 程序名: named_cart.inc
require("cart.inc");
class Named_Cart extends Cart {
var $owner;
function set_owner ($name) {
$this->owner = $name;
}
}
?>

要使用记名手推车类，请看下面的范例。当然这不算太好的设计，每个子类都一直 require 它的父类，会造成服务器在 I/O 上面的负担。在实作时，可以将整个系列的类在同一个程序文件中，从最早的袓先类到最后的子孙类，也方便日后修正。

<?php
require("named_cart.inc");
$ncart = new Named_Cart; // 建立类变量
$ncart->set_owner ("CyberRidder"); // 配置类的记名属性
echo $ncart->owner; // 显示类的记名属性
$ncart->add_item ("10", 1); // 从父类遗传的方法也可使用
?>

因此，在 PHP 中使用了 extends 保留字，加上良好的系统分析与完整的 CRC 卡片 (详见面向对象相关书籍) 设计之后，PHP 可变成拥有强大类能力的 CGI 语言。

PHP 由于是脚本语言 (Script)，因此程序源代码可见，在软件工程中的元件黑箱并不会在目前的 PHP 版本中出现，也就是说，全部的类其实没有隐藏起它的内容。对于软件业者而言，没有办法保护所谓的软件 IC，站在开放团体而言，反而有源代码是件好事，至于孰是孰非，就很难判定了，不过目前 PHP 还是 Open Source 团体的一份子，或许日后 Zend 引擎可以做到类封装的功能也不一定。


函数库及函数

本章中的函数涵盖 PHP 3.0.11 版前的所有函数。

函数的格式如下:

函数库名称

函数名称

函数功能简述。

语法: 返回类型 函数名称(类型 参数1, 类型 参数2....);

返回值: 变量类型

函数种类: 例如: 数据库, 网络..等等

内容说明

函数说明详述内容

使用范例

函数的范例 (本栏可能省略)

参考

小节索引 函数名称, 小节索引 函数名称... (本栏可能省略)

以下为 PHP 的相关函数库

  1. Adabas D 数据库链接函数库
  2. apache服务器专用函数库
  3. 数组处理函数库
  4. 拼写检查函数库
  5. BC 高精确度函数库
  6. 历法函数库
  7. ClibPDF 函数库
  8. 日期与时间函数库
  9. DBA 函数库
  10. dBase 格式资料表函数库
  11. dbm 类数据库函数库
  12. 目录管理函数库
  13. 动态链接函数库
  14. 程序执行功能函数库
  15. FDF 函数库
  16. filePro 数据库函数库
  17. 文件系统函数库
  18. HTTP 相关函数库
  19. Hyperwave 服务器函数库
  20. 图形处理函数库
  21. IMAP 电子邮件系统函数库
  22. PHP 选项及相关信息函数库
  23. Informix 数据库函数库
  24. InterBase 数据库函数库
  25. LDAP 目录协议函数库
  26. 电子邮件函数库
  27. 数学运算函数库
  28. mcrypt 编码函数库
  29. mhash 哈稀函数库
  30. 杂项函数库
  31. mSQL 数据库函数库
  32. SQL Server 数据库函数库
  33. MySQL 数据库函数库
  34. Sybase 数据库函数库
  35. 网络函数库
  36. NIS 函数库
  37. ODBC 数据库链接函数库
  38. Oracle 8 数据库函数库
  39. Oracle 数据库函数库
  40. Perl 相容语法函数库
  41. PDF 格式文件函数库
  42. PostgreSQL 数据库函数库
  43. 正则表达式函数库
  44. 信号与共享内存函数库
  45. Solid 数据库链接函数库
  46. SNMP 网管函数库
  47. 字符串处理函数库
  48. URL 处理函数库
  49. 变量处理函数库
  50. Vmailmgr 邮件处理函数库
  51. WDDX 函数库
  52. 压缩文件函数库
  53. XML 解析函数库
  54. Session 函数库
  55. GNU 记录函数库
  56. FTP 文件传输函数库
  57. MCAL 模块日历存取函数库


Adabas D 数据库链接函数库

本函数库共有 15 个函数

在使用 PHP 与数据库的结合上，用 Adabas D 函数库是较不好的方法，建议使用业界标准的 ODBC 函数库取代 Adabas D 函数库。

ada_afetch: | 取得数据库的返回列。
ada_autocommit: | 开关自动改动功能。
ada_close: | 关闭 Adabas D 链接。
ada_commit: | 改动 Adabas D 数据库。
ada_connect: | 链接至 Adabas D 数据库。
ada_exec: | 执行 SQL 指令。
ada_fetchrow: | 取得返回一列。
ada_fieldname: | 取得字段名称。
ada_fieldtype: | 取得字段资料类型。
ada_freeresult: | 释出返回资料的内存。
ada_numfields: | 取得字段数目。
ada_numrows: | 取得返回列数目。
ada_result: | 取得返回资料。
ada_resultall: | 返回 HTML 表格资料。
ada_rollback: | 撤消当前交易。


apache服务器专用函数库

本函数库共有 4 个函数

顾名思义，若 WEB 服务器不是使用 Apache 服务器，则本函数库就派不上用场了。

apache_lookup_uri: | 获得所有的 URI 相关信息。
apache_note: | 获得及配置apache服务器的请求纪录。
getallheaders: | 获得所有 HTTP 变量值。
virtual: | 完成apache服务器的子请求 (sub-request)。


数组处理函数库

本函数库共有 23 个函数

array: | 建立一个新的数组。
array_walk: | 让用户自订函数能处理数组中的每一个元素。
arsort: | 将数组的值由大到小排序。
asort: | 将数组的值由小到大排序。
count: | 计算变量或数组中的元素个数。
current: | 返回数组中目前的元素。
each: | 返回数组中下一个元素的索引及值。
end: | 将数组的内部指针指到最后的元素。
key: | 取得数组中的索引资料。
ksort: | 将数组的元素依索引排序。
list: | 列出数组中元素的值。
next: | 将数组的内部指针向后移动。
pos: | 返回数组目前的元素。
prev: | 将数组的内部指针往前移动。
range: | 建立一个整数范围的数组。
reset: | 将数组的指针指到数组第一个元素。
rsort: | 将数组的值由大到小排序。
shuffle: | 将数组的顺序弄混。
sizeof: | 获知数组的大小。
sort: | 将数组排序。
uasort: | 将数组依用户自定的函数排序。
uksort: | 将数组的索引依用户自定的函数排序。
usort: | 将数组的值依用户自定的函数排序。


拼写检查函数库

本函数库共有 4 个函数

在使用这个函数前，需要先到 http://metalab.unc.edu/kevina/aspell 取回所需的拼写检查函数库 aspell library。

aspell_new: | 载入一个新的字典。
aspell_check: | 检查一个单字。
aspell_check-raw: | 检查一个单字，即使拼错也不改变或修正。
aspell_suggest: | 检查一个单字，并提供拼写建议。


BC 高精确度函数库

本函数库共有 9 个函数

要使用 BC 这个函数库，要在编译 PHP 程序时加入 --enable-bcmath 的选项。

bcadd: | 将二个高精确度数字相加。
bccomp: | 比较二个高精确度数字。
bcdiv: | 将二个高精确度数字相除。
bcmod: | 取得高精确度数字的余数。
bcmul: | 将二个高精确度数字相乘。
bcpow: | 求一高精确度数字次方值。
bcscale: | 配置程序中所有 BC 函数库的默认小数点位数。
bcsqrt: | 求一高精确度数字的平方根。
bcsub: | 将二个高精确度数字相减。


历法函数库

本函数库共有 10 个函数

想要使用历法函数库，需要先编译好 dl/calendar 函数库。PHP 中的历法函数库提供不同的公元历法转换。转换的基准是凯撒日计数 (Julian Day Count)。所有的历法计算都必需先转换成凯撒日计数，再转成您所需要的历法，更多的资料可以参考这个网址找到 http://genealogy.org/~scottlee/cal-overview.html 。不过对于使用黄帝纪元的中国，这个函数库就还需要扩充才适合了。

JDToGregorian: | 将凯撒日计数 (Julian Day Count) 转换成为格里高里历法 (Gregorian date)。
GregorianToJD: | 将格里高里历法转换成为凯撒日计数。
JDToJulian: | 将凯撒日计数转换成为凯撒历法。
JulianToJD: | 将凯撒历法转换成为凯撒日计数。
JDToJewish: | 将凯撒日计数转换成为犹太历法。
JewishToJD: | 将犹太历法转换成为凯撒日计数。
JDToFrench: | 将凯撒日计数转换成为法国共和历法。
FrenchToJD: | 将法国共和历法转换成为凯撒日计数。
JDMonthName: | 返回月份名。
JDDayOfWeek: | 返回日期在周几。


ClibPDF 函数库

本函数库共有 0 个函数


日期与时间函数库

本函数库共有 12 个函数

checkdate: | 验证日期的正确性。
date: | 将服务器的时间格式化。
strftime: | 将服务器的时间本地格式化。
getdate: | 获得时间及日期信息。
gettimeofday: | 取得目前时间。
gmdate: | 取得目前与 GMT 差后的时间。
easter_date: | 计算复活节日期。
easter_days: | 计算复活节与三月廿一日之间日期数。
mktime: | 取得 UNIX 时间戳记。
gmmktime: | 取得 UNIX 时间戳记的格林威治时间。
time: | 取得目前时间的 UNIX 时间戳记。
microtime: | 取得目前时间的 UNIX 时间戳记的百万分之一秒值。


DBA 函数库

本函数库共有 12 个函数

在柏克莱的 BSD 系列操作系统中，有个简单的数据库结构，它以数个文件组成超小型的数据库系统，架构成抽象层 (abstraction layer) 的 DBA 数据库。

目前 PHP 支持的 DBA 数据库包括

  1. dbm：柏克莱发展的最早期 DBA 数据库。
  2. ndbm：较新且较有弹性的 DBA。
  3. gdbm：GNU 发展的 DBA，ftp://ftp.gnu.org/pub/gnu/gdbm/
  4. db2：由 Sleepycat 软件开发的 DB2 (非 IBM 的 DB2)，http://www.sleepycat.com
  5. cdb：这是 qmail 作者开发快速可靠的 DBA，http://pobox.com/~djb/cdb.html

以下是简单的使用范例，当然在使用前，必须先装好 DBA。

<?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_close: | 关闭数据库。
dba_delete: | 删除指定资料。
dba_exists: | 检查键是否存在。
dba_fetch: | 取回指定资料。
dba_firstkey: | 取回首笔键值。
dba_insert: | 加入资料。
dba_nextkey: | 取回下笔键值。
dba_popen: | 打开并保持数据库链接。
dba_open: | 打开数据库链接。
dba_optimize: | 最佳化数据库。
dba_replace: | 改动或加入资料。
dba_sync: | 数据库同步化。


dBase 格式资料表函数库

本函数库共有 9 个函数

本函数库可供 Web 服务器存取 dBase 的 dbf 资料表。目前本函数库无法存取 dBase 中的 indexes 或 memo 的字段，亦无法将资料表锁上。在使用上特别需要小心使用，因为它不是真正的数据库系统，仅是储存资料的资料表而已，二个以上的用户同时存取同一个资料表时甚至可能会发生 dbf 资料表崩毁的情形。如果可能话，最好是用真正的数据库系统，如 MySQL 或 Oracle 等，就不会有多人使用时导至资料损毁的困扰。

dbase_create: | 建立 dBase 资料表。
dbase_open: | 打开 dBase 资料表。
dbase_close: | 关闭 dBase 资料表。
dbase_pack: | 清理 dBase 资料表。
dbase_add_record: | 加入资料到 dBase 资料表。
dbase_delete_record: | 删除 dBase 资料表的资料。
dbase_get_record: | 取得 dBase 资料表的资料。
dbase_numfields: | 取得 dBase 资料表的字段数。
dbase_numrecords: | 取得 dBase 资料表的列数。


dbm 类数据库函数库

本函数库共有 10 个函数

dbm 为柏克莱大学所发展的文件型数据库。欲使用本函数可能需要先安装相关的 DBM 函数馆，当然在 BSD 系列的操作系统中已经装好的就不用自行动手了。

dbm 在资料存取没有很复杂的字段，它只有单纯的键/值 (key/value) 的字段。

下例为简单的 dbm 使用范例

<?
function do_stuff() {
// 略去复杂的资料处理流程
}
$dbm = dbmopen("lastseen", "w");
if (dbmexists($dbm, $userid)) {
$last_seen = dbmfetch($dbm, $userid);
} else {
dbminsert($dbm, $userid, time());
}
do_stuff();
dbmreplace($dbm, $userid, time());
dbmclose($dbm);
?>

dbmopen: | 打开 DBM 数据库链接。
dbmclose: | 关闭 DBM 数据库。
dbmexists: | 检查键是否存在。
dbmfetch: | 取回指定资料。
dbminsert: | 加入资料。
dbmreplace: | 改动或加入资料。
dbmdelete: | 删除指定资料。
dbmfirstkey: | 取回首笔键名。
dbmnextkey: | 取回下笔键值。
dblist: | 取得 DBM 的信息。


目录管理函数库

本函数库共有 6 个函数

chdir: | 改变目录。
dir: | 目录类别类。
closedir: | 关闭目录 handle。
opendir: | 打开目录 handle。
readdir: | 读取目录 handle。
rewinddir: | 重设目录 handle。


动态链接函数库

本函数库共有 1 个函数

dl: 载入 PHP 扩充模块。


程序执行功能函数库

本函数库共有 4 个函数

escapeshellcmd: | 除去字符串中的特殊符号。
exec: | 执行外部程序。
system: | 执行外部程序并显示输出资料。
passthru: | 执行外部程序并不加处理输出资料。


FDF 函数库

本函数库共有 12 个函数

本函数库用来实作表单资料格式 (Forms Data Format, FDF)，可以参考 http://partners.adobe.com/asn/developer/acrosdk/main.html 上面有更多有关 FDF 的资料文件。

FDF_open: | 打开 FDF 文件。
FDF_close: | 关闭 FDF 文件。
FDF_create: | 建立新的 FDF 文件。
FDF_save: | 将 FDF 文件存档。
FDF_get_value: | 取得字段的值。
FDF_set_value: | 配置字段的值。
FDF_next_field_name: | 下一字段的名称。
FDF_set_ap: | 配置显示字段。
FDF_set_status: | 配置 /STATUS 键。
FDF_get_status: | 取得 /STATUS 键的值。
FDF_set_file: | 配置 /F 键。
FDF_get_file: | 取得 /F 键的值。


filePro 数据库函数库

本函数库共有 7 个函数

FilePro 由 Personix, Inc. 所发展的数据库系统，它支持 UNIX 及 DOS 等操作系统。更多的细节可以参考 http://www.fileproplus.com。目前 PHP 提供的功能仅能读取 filePro 数据库，而无法对它做写入等相关步骤。

filepro: | 读取 FilePro Map 档。
filepro_fieldname: | 取得字段名称。
filepro_fieldtype: | 取得字段类型。
filepro_fieldwidth: | 取得字段宽度。
filepro_retrieve: | 取得指定储存格资料。
filepro_fieldcount: | 取得字段数目。
filepro_rowcount: | 取得列数目。


文件系统函数库

本函数库共有 58 个函数

basename: | 返回不含路径的文件字符串。
chgrp: | 改变文件所属的群组。
chmod: | 改变文件的属性。
chown: | 改变文件的拥有者。
clearstatcache: | 清除文件状态快取。
copy: | 复制文件。
delete: | 无用的项目。
dirname: | 取得路径中的目录名。
diskfreespace: | 取得目录所在的剩余可用空间。
fclose: | 关闭已打开的文件。
feof: | 测试文件指针是否指到档尾。
fgetc: | 取得文件指针所指的字符。
fgetcsv: | 取得文件指针所指行，并解析 CSV 字段。
fgets: | 取得文件指针所指的行。
fgetss: | 取得文件指针所指的行，并去掉 HTML 语言标记。
file: | 将文件全部读入数组变量中。
file_exists: | 检查文件是否存在。
fileatime: | 取得文件最后的存取时间。
filectime: | 取得文件最后的改变时间。
filegroup: | 取得文件所属的群组。
fileinode: | 取得文件的 inode 值。
filemtime: | 取得文件最后的修改时间。
fileowner: | 取得文件的拥有者。
fileperms: | 取得文件的权限配置。
filesize: | 获得文件的大小。
filetype: | 获得文件的类型。
flock: | 锁住文件。
fopen: | 打开文件或者 URL。
fpassthru: | 输出所有剩余资料。
fputs: | 写到文件指针。
fread: | 位组的方式读取文件。
fseek: | 移动文件指针。
ftell: | 取得文件读写指针位置。
fwrite: | 二进位位方式写入文件。
set_file_buffer: | 配置文件缓冲区大小。
is_dir: | 测试文件是否为目录。
is_executable: | 测试文件是否为可执行档。
is_file: | 测试文件是否为正常文件。
is_link: | 测试文件是否为链接档。
is_readable: | 测试文件是否可读取。
is_writeable: | 测试文件是否可写入。
link: | 建立硬式链接。
linkinfo: | 取得链接信息。
mkdir: | 建立目录。
pclose: | 关闭文件。
popen: | 打开文件。
readfile: | 输出文件。
readlink: | 返回符号链接 (symbolic link) 目标档。
rename: | 更改档名。
rewind: | 重置开档的读写位置指针。
rmdir: | 删除目录。
stat: | 取得文件相关信息。
lstat: | 取得链接档相关信息。
symlink: | 建立符号链接 (symbolic link)。
tempnam: | 建立只一的临时档。
touch: | 配置最后修改时间。
umask: | 改变目前的文件属性遮罩 umask。
unlink: | 删除文件。


HTTP 相关函数库

本函数库共有 2 个函数

header: | 送出 HTTP 协议的标头到浏览器
setcookie: | 送出 Cookie 信息到浏览器。


Hyperwave 服务器函数库

本函数库共有 53 个函数

要使用这种函数库，须先到 http://www.hyperwave.com 下载函数库，和大多数 PHP 支持的函数库不同，这套是需要收费的函数库，提供下载的试用版为三十天的试用版。

Hyperwave 是一种信息系统，和一般数据库不同的是，Hyperwave 着重在文件的储存及管理。Hyperwave 将每一笔文件当成一个类，同时也记载着有关该类的 meta 信息，当然 meta 资料可由用户自行扩充。属性的格式为 name/value 这也对映到 form 上的 name=value 信息。比较特别的是这些 name 的名称不必是只一的，也就是 name 可以重覆。每笔类属性都是由换行字符分开，亦即每行代表一笔属性。

hw_Children: | 取得子类代码。
hw_ChildrenObj: | 取得子类的类记录。
hw_Close: | 关闭 Hyperwave 连接。
hw_Connect: | 连上 Hyperwave 服务器。
hw_Cp: | 复制类。
hw_Deleteobject: | 删除类。
hw_DocByAnchor: | 取得指定锚的文件类代码。
hw_DocByAnchorObj: | 取得指定锚的文件类。
hw_DocumentAttributes: | 取得指定文件类属性。
hw_DocumentBodyTag: | 取得指定文件类的文件主体标记。
hw_DocumentContent: | 取得指定文件类的内容。
hw_DocumentSetContent: | 重设指定文件类的内容。
hw_DocumentSize: | 取得文件大小。
hw_ErrorMsg: | 取得错误信息。
hw_EditText: | 改动文字文件。
hw_Error: | 取得错误代码。
hw_Free_Document: | 释放文件使用的内存。
hw_GetParents: | 取得父类的 ID。
hw_GetParentsObj: | 取得父类的资料。
hw_GetChildColl: | 取得子类们的 ID。
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_Identify: | 用户身份确认。
hw_InCollections: | 检查类聚集。
hw_Info: | 连接信息。
hw_InsColl: | 插入聚集。
hw_InsDoc: | 插入文件。
hw_InsertDocument: | 上传文件。
hw_InsertObject: | 插入类记录。
hw_Modifyobject: | 修改类记录。
hw_New_Document: | 建立新文件。
hw_Objrec2Array: | 类记录转为数组。
hw_OutputDocument: | 输出文件。
hw_pConnect: | 连上 Hyperwave 服务器。
hw_PipeDocument: | 取得文件。
hw_Root: | 取得根类代码。
hw_Unlock: | 取消锁定。
hw_Who: | 列出目前用户。
hw_GetUsername: | 目前用户名字。


图形处理函数库

本函数库共有 44 个函数

使用本功能需要在编译 PHP 前先安装 GD library，可到 http://www.boutell.com/gd 下载。在 1.6.2 版以前的 GD library 有支持 GIF 格式的功能，但因为 GIF 格式使用的 LZW 演算法牵涉到 Unisys 的专利权，因此在 GD library 1.6.2 版之后不支持 GIF 的格式。在安装 1.6.2 版时系统必须要有 libpng 及 zlib 二个动态链接函数库。前者可在 http://www.cdrom.com/pub/png 下载；后者可在 http://www.cdrom.com/pub/infozip/zlib 下载。而 GD library 也支持 TrueType 字型，请先到 http://www.freetype.org 下载动态链接程序库。

PHP 在 3.0.13 版之后，终于支持了 PNG 的图型格式，使用 PNG 就不怕会有版权的问题了，而且在 PHP 这个版本以后，安装编译时会检查 GD library 支持的是旧的 GIF 格式还是新的 PNG 格式来决定是否使用 GIF 或 PNG 的专用函数。

若真的需要使用 GD Library 中有关 GIF 的部份，不妨找较旧的 FreeBSD 或者 Linux 版本，里面可能会有这些函数，但可能会因为侵犯到 Unisys 的专利权，而引发法律问题。同时请注意旧版的 TTF 字型相关函数可能不能用。

以下是简单的例子

<?php
Header("Content-type: image/gif");
$im = imagecreate(400,30);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
imageline($im, 1, 1, 350, 25, $black);
imagearc($im, 200, 15, 20, 20, 35, 190, $white);
imagestring($im, 5, 4, 10, "Graph TEST!!", $white);
ImageGif($im);
ImageDestroy($im);
?>

GetImageSize: | 取得图片的长宽。
ImageArc: | 画弧线。
ImageChar: | 写出横向字符。
ImageCharUp: | 写出直式字符。
ImageColorAllocate: | 匹配颜色。
ImageColorTransparent: | 指定透明背景色。
ImageCopyResized: | 复制新图并调整大小。
ImageCreate: | 建立新图。
ImageDashedLine: | 绘虚线。
ImageDestroy: | 结束图形。
ImageFill: | 图形着色。
ImageFilledPolygon: | 多边形区域着色。
ImageFilledRectangle: | 矩形区域着色。
ImageFillToBorder: | 指定颜色区域内着色。
ImageFontHeight: | 取得字型的高度。
ImageFontWidth: | 取得字型的宽度。
ImageInterlace: | 使用交错式显示与否。
ImageLine: | 绘实线。
ImageLoadFont: | 载入点阵字型。
ImagePolygon: | 绘多边形。
ImageRectangle: | 绘矩形。
ImageSetPixel: | 绘点。
ImageString: | 绘横式字符串。
ImageStringUp: | 绘直式字符串。
ImageSX: | 取得图片的宽度。
ImageSY: | 取得图片的高度。
ImageTTFBBox: | 计算 TTF 文字所占区域。
ImageTTFText: | 写 TTF 文字到图中。
ImageColorAt: | 取得图中指定点颜色的索引值。
ImageColorClosest: | 计算色表中与指定颜色最接近者。
ImageColorExact: | 计算色表上指定颜色索引值。
ImageColorResolve: | 计算色表上指定或最接近颜色的索引值。
ImageColorSet: | 配置色表上指定索引的颜色。
ImageColorsForIndex: | 取得色表上指定索引的颜色。
ImageColorsTotal: | 计算图的颜色数。
ImagePSLoadFont: | 载入 PostScript 字型。
ImagePSFreeFont: | 卸下 PostScript 字型。
ImagePSEncodeFont: | PostScript 字型转成向量字。
ImagePSText: | 写 PostScript 文字到图中。
ImagePSBBox: | 计算 PostScript 文字所占区域。
ImageCreateFromPNG: | 取出 PNG 图型。
ImagePNG: | 建立 PNG 图型。
ImageCreateFromGIF: | 取出 GIF 图型。
ImageGIF: | 建立 GIF 图型。


IMAP 电子邮件系统函数库

本函数库共有 46 个函数

IMAP 的全名是 Internet Message Access Protocol，即网际网络信息存取协议，为美国史丹福大学 (Stanford University) 在 1986 年开始研发的多重邮箱电子邮件系统。PHP 所提供的功能是 IMAP 4 的系统，这是根据 RFC 1730 所实作的。更多有关 IMAP 的信息可以参考 IMAP 的官方网站 http://www.imap.org。

欲使用 IMAP 的电子邮件功能，要先到 ftp://ftp.cac.washington.edu/imap 下载 IMAP 的客户端程序。在编译完成之后将 c-client/c-client.a 复制到 /usr/local/lib 之中，并将 c-client/rfc822.h、mail.h 及 linkage.h 三个文件复制到 /usr/local/include 之下。之后编译 PHP 程序时要加入 --with-imap 的选项。

imap_append: | 附加字符串到指定的邮箱中。
imap_base64: | 解 BASE64 编码。
imap_body: | 读信的内文。
imap_check: | 返回邮箱信息。
imap_close: | 关闭 IMAP 链接。
imap_createmailbox: | 建立新的信箱。
imap_delete: | 标记欲删除邮件。
imap_deletemailbox: | 删除既有信箱。
imap_expunge: | 删除已标记的邮件。
imap_fetchbody: | 从信件内文取出指定部分。
imap_fetchstructure: | 获取某信件的结构信息。
imap_header: | 获取某信件的标头信息。
imap_headers: | 获取全部信件的标头信息。
imap_listmailbox: | 获取邮箱列示。
imap_listsubscribed: | 获取订阅邮箱列示。
imap_mail_copy: | 复制指定信件到它处邮箱。
imap_mail_move: | 移动指定信件到它处邮箱。
imap_num_msg: | 取得信件数。
imap_num_recent: | 取得新进信件数。
imap_open: | 打开 IMAP 链接。
imap_ping: | 检查 IMAP 是否连接。
imap_renamemailbox: | 更改邮箱名字。
imap_reopen: | 重开 IMAP 链接。
imap_subscribe: | 订阅邮箱。
imap_undelete: | 取消删除邮件标记。
imap_unsubscribe: | 取消订阅邮箱。
imap_qprint: | 将 qp 编码转成八位。
imap_8bit: | 将八位转成 qp 编码。
imap_binary: | 将八位转成 base64 编码。
imap_scanmailbox: | 寻找信件有无特定字符串。
imap_mailboxmsginfo: | 取得目前邮箱的信息。
imap_rfc822_write_address: | 电子邮件位址标准化。
imap_rfc822_parse_adrlist: | 解析电子邮件位址。
imap_setflag_full: | 配置信件标志。
imap_clearflag_full: | 清除信件标志。
imap_sort: | 将信件标头排序。
imap_fetchheader: | 取得原始标头。
imap_uid: | 取得信件 UID。
imap_getmailboxes: | 取得全部信件详细信息。
imap_getsubscribed: | 列出所有订阅邮箱。
imap_msgno: | 列出 UID 的连续信件。
imap_search: | 搜寻指定标准的信件。
imap_last_error: | 最后的错误信息。
imap_errors: | 所有的错误信息。
imap_alerts: | 所有的警告信息。
imap_status: | 目前的状态信息。


PHP 选项及相关信息函数库

本函数库共有 17 个函数

error_log: | 送出一个错误信息。
error_reporting: | 配置错误信息回报的等级。
getenv: | 取得系统的环境变量
get_cfg_var: | 取得 PHP 的配置选项值。
get_current_user: | 取得 PHP 行程的拥有者名称。
get_magic_quotes_gpc: | 取得 PHP 环境变量 magic_quotes_gpc 的值。
get_magic_quotes_runtime: | 取得 PHP 环境变量 magic_quotes_runtime 的值。
getlastmod: | 返回该网页的最后修改时间。
getmyinode: | 返回该网页的 inode 值。
getmypid: | 返回 PHP 的行程代号。
getmyuid: | 返回 PHP 的用户代码。
getrusage: | 返回系统资源使用率。
phpinfo: | 返回 PHP 所有相关信息。
phpversion: | 返回 PHP 版本信息。
putenv: | 配置系统环境变量。
set_magic_quotes_runtime: | 配置 magic_quotes_runtime 值。
set_time_limit: | 配置该页最久执行时间。


Informix 数据库函数库

本函数库共有 38 个函数

目前支持的 Informix 版本为 ODS 7.x、SE 7.x 与 Universal Server (IUS) 9.x 三种。在 ODS 7.x 的版本中，完全支持所有的资料类型，而在 IUS 9.x 中，不支持 SLOB 与 CLOB 二种类型。

要在 Web Server 上安装 Informix Client 端，在编译 PHP 之前 (configure 之前)，要先设好 IFX_LIBDIR、IFX_LIBS 及 IFX_INCDIR 三种环境变量，若是 9.x 版尚要配置 HAVE_IFX_IUS 环境变量。同时在配置时要加入 --with_informix=yes 的选项。

ifx_connect: | 打开 Informix 服务器连接。
ifx_pconnect: | 打开 Informix 服务器持续连接。
ifx_close: | 关闭 Informix 服务器连接。
ifx_query: | 送出一个 query 字符串。
ifx_prepare: | 准备 query 字符串。
ifx_do: | 执行已准备 query 字符串。
ifx_error: | 取得 Informix 最后的错误。
ifx_errormsg: | 取得 Informix 最后错误信息。
ifx_affected_rows: | 得到 Informix 最后操作影响的列数目。
ifx_getsqlca: | 取得 query 后的 sqlca 信息。
ifx_fetch_row: | 返回单列的各字段。
ifx_htmltbl_result: | 将 query 返回资料转成 HTML 表格。
ifx_fieldtypes: | 列出 Informix 的 SQL 字段。
ifx_fieldproperties: | 列出 Informix 的 SQL 字段属性。
ifx_num_fields: | 取得返回字段的数目。
ifx_num_rows: | 取得返回列的数目。
ifx_free_result: | 释放返回占用内存。
ifx_create_char: | 建立字符类。
ifx_free_char: | 删除字符类。
ifx_update_char: | 更改字符类。
ifx_get_char: | 取得字符类。
ifx_create_blob: | 建立长位类。
ifx_copy_blob: | 复制长位类。
ifx_free_blob: | 删除长位类。
ifx_get_blob: | 取得长位类。
ifx_update_blob: | 更改长位类。
ifx_blobinfile_mode: | 配置长位类模式。
ifx_textasvarchar: | 配置文字模式默认值。
ifx_byteasvarchar: | 配置位组模式默认值。
ifx_nullformat: | 配置空字符模式默认值。
ifxus_create_slob: | 建立 slob 类。
ifx_free_slob: | 删除 slob 类。
ifxus_close_slob: | 删除 slob 类。
ifxus_open_slob: | 打开 slob 类。
ifxus_tell_slob: | 返回目前文件或找寻位置。
ifxus_seek_slob: | 配置目前文件或找寻位置。
ifxus_read_slob: | 读取指定数目的 slob 类。
ifxus_write_slob: | 将字符串写入 slob 类中。


InterBase 数据库函数库

本函数库共有 11 个函数

InterBase 是 Inprise 的数据库系统，在 Windows 系统平台上的 Delphi 及 BCB 等开发工具中附有单机的版本供开发使用。更多有关 InterBase 的信息，可以参考 http://www.interbase.com

ibase_connect: | 打开 InterBase 服务器连接。
ibase_pconnect: | 保持 InterBase 服务器连接。
ibase_close: | 关闭 InterBase 服务器连接。
ibase_query: | 送出一个 query 字符串。
ibase_fetch_row: | 返回单列的各字段。
ibase_free_result: | 释放返回占用内存。
ibase_prepare: | 分析 SQL 语法。
ibase_bind: | 链接 PHP 变量到 InterBase 参数。
ibase_execute: | 执行 SQL 的指令部分。
ibase_free_query: | 释放查询指令占用内存。
ibase_timefmt: | 配置时间格式。


LDAP 目录协议函数库

本函数库共有 25 个函数

LDAP (Lightweight Directory Access Protocol) 是一种轻量的目录存取协议，提供客户从各个角落连接到目录服务器中。在 RFC 1777 及 RFC 1778 中对 LDAP 有较深入的描述，亦可参考 Netscape 站上有关 LDAP 方面的资料。

在 LDAP 的协议之中，很像硬盘目录结构或倒过来的树状结构。LDAP 的根就是全世界，第一级是属于国别 (countries) 性质的层级，之后可能会有公司 (organization) 的层级，接着是部门 (organizationalUnit)，再来为个人。而就像文件，每个人都会有所谓的显名 (distinguished name, 简称 dn)，dn 可能像酱子 cn=John Smith,ou=Accounts,o=My Company,c=US。

<?php
// 本例使用到 connect, bind, search, interpret search
// result, close connection 等等 LDAP 的功能。
echo "<h3>LDAP 搜寻测试</h3>";
echo "连接中 ...";
$ds=ldap_connect("localhost"); // 先连上有效的 LDAP 服务器
echo "连上 ".$ds."<p>";

if ($ds) {
echo "Binding ...";
$r=ldap_bind($ds); // 匿名的 bind，为只读属性
echo "Bind 返回 ".$r."<p>";
echo "Searching for (sn=S*) ..."; // 找寻 S 开头的姓氏
$sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
echo "Search 返回 ".$sr."<p>";
echo "S 开头的姓氏有 ".ldap_count_entries($ds,$sr)." 个<p>";
echo "取回姓氏资料 ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "资料返回 ".$info["count"]." 笔:<p>";
for ($i=0; $i<$info["count"]; $i++) {
echo "dn 为: ". $info[$i]["dn"] ."<br>";
echo "cn 为: ". $info[$i]["cn"][0] ."<br>";
echo "email 为: ". $info[$i]["mail"][0] ."<p>";
}
echo "关闭链接";
ldap_close($ds);
} else {
echo "<h4>无法连接到 LDAP 服务器</h4>";
}
?>

欲使用 LDAP 服务器功能要先在 Web 服务器安装 LDAP 客户端程序，较着名的有美国密西根大学的 ldap-3.3 套件或者是 Netscape 的 Directory SDK。可到下列网址找回来安装

  • Netscape http://developer.netscape.com/tech/directory/
  • 密西根大学 http://www.umich.edu/~dirsvcs/ldap/index.html
  • OpenLDAP 计划 http://www.openldap.com
  • LDAP World http://elvira.innosoft.com/ldapworld

ldap_add: | 增加 LDAP 名录的条目。
ldap_mod_add: | 增加 LDAP 名录的属性。
ldap_mod_del: | 删除 LDAP 名录的属性。
ldap_mod_replace: | 新的 LDAP 名录取代旧属性。
ldap_bind: | 系住 LDAP 目录。
ldap_close: | 结束 LDAP 链接。
ldap_connect: | 连上 LDAP 服务器。
ldap_count_entries: | 搜寻结果的数目。
ldap_delete: | 删除指定资源。
ldap_dn2ufn: | 将 dn 转成易读的名字。
ldap_explode_dn: | 切开 dn 的字段。
ldap_first_attribute: | 取得第一笔资源的属性。
ldap_first_entry: | 取得第一笔结果代号。
ldap_free_result: | 释放返回资料内存。
ldap_get_attributes: | 取得返回资料的属性。
ldap_get_dn: | 取得 DN 值。
ldap_get_entries: | 取得全部返回资料。
ldap_get_values: | 取得全部返回值。
ldap_list: | 列出简表。
ldap_modify: | 改变 LDAP 名录的属性。
ldap_next_attribute: | 取得返回资料的下笔属性。
ldap_next_entry: | 取得下一笔结果代号。
ldap_read: | 取得目前的资料属性。
ldap_search: | 列出树状简表。
ldap_unbind: | 结束 LDAP 链接。


电子邮件函数库

本函数库共有 1 个函数

mail: 寄出电子邮件。


数学运算函数库

本函数库共有 33 个函数

本函数库能处理的数值范围只到长整数与倍浮点数的范围。若要处理超过上述范围的数值，要使用 BC 高精确度函数库。本函数库定义了圆周率的常量 M_PI 值为 3.14159265358979323846。

Abs: | 取得绝对值。
Acos: | 取得反余弦值。
Asin: | 取得反正弦值。
Atan: | 取得反正切值。
Atan2: | 计算二数的反正切值。
base_convert: | 转换数字的进位方式。
BinDec: | 二进位转成十进位。
Ceil: | 计算大于指定数的最小整数。
Cos: | 余弦计算。
DecBin: | 十进位转二进位。
DecHex: | 十进位转十六进位。
DecOct: | 十进位转八进位。
Exp: | 自然对数 e 的次方值。
Floor: | 计算小于指定数的最大整数。
getrandmax: | 随机数的最大值。
HexDec: | 十六进位转十进位。
Log: | 自然对数值。
Log10: | 10 基底的对数值。
max: | 取得最大值。
min: | 取得最小值。
mt_rand: | 取得随机数值。
mt_srand: | 配置随机数种子。
mt_getrandmax: | 随机数的最大值。
number_format: | 格式化数字字符串。
OctDec: | 八进位转十进位。
pi: | 圆周率。
pow: | 次方。
rand: | 取得随机数值。
round: | 四舍五入。
Sin: | 正弦计算。
Sqrt: | 开平方根。
srand: | 配置随机数种子。
Tan: | 正切计算。


mcrypt 编码函数库

本函数库共有 8 个函数

要使用本函数库要先准备 mcrypt 程序，可以到 ftp://argeas.cs-net.gr/pub/unix/mcrypt 下载这个程序 libmcrypt-x.x.tar.gz。同时在编译 PHP 程序时需要加入 --with-mcrypt 的选项，俾使本函数库能顺利运作。

本函数提供的编码方式有 DES、TripleDES、Blowfish (默认值)、3-WAY、SAFER-SK64、SAFER-SK128、TWOFISH、TEA、RC2 及使用 CBC, OFB, CFB, ECB 作为密码检索的 GOST。此外还有 RC6 及 IDEA 等非免费的编码方式。见下面列示为已定义的密码：

  • MCRYPT_BLOWFISH
  • MCRYPT_DES
  • MCRYPT_TripleDES
  • MCRYPT_ThreeWAY
  • MCRYPT_GOST
  • MCRYPT_CRYPT
  • MCRYPT_DES_COMPAT
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_CAST128
  • MCRYPT_TEAN
  • MCRYPT_RC2
  • MCRYPT_TWOFISH (mcrypt 2.x 前的版本用)
  • MCRYPT_TWOFISH128 (mcrypt 2.x 后的版本用)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_RC6
  • MCRYPT_IDEA

在密码检索本 (cipher) 方面，本函库支持 CBC、OFB、CFB 与 ECB 四种密码检索本。这四种密码检索本的简单叙述如下，更详细的信息请参考 Schneier 所着作的 Applied Cryptography (ISBN: 0-471-11709-9)：

  1. ECB (electronic codebook): 适合随机的资料，例如使用另外的密钥。若资料量少且随机时，使用 ECB 较不适合。
  2. CBC (cipher block chaining): 适合文件的加密，安全性较 ECB 好。
  3. CFB (cipher feedback): 适合对位组资料流中的某段独立位组资料 (single bytes) 加密。
  4. OFB (output feedback): 与 CFB 相容，尤其适合在无法忍受错误波及的应用上。

目前 PHP 仍无法对单位 (bit) 的熵值做加密解密的步骤，目前只适合对字符串作密码处理。

在使用 CFB 及 OFB 二种模式时，必须要向量初始化 (Initialization vector, IV)，CBC 模式也可以使用向量初始化。向量初始化的值在加解密时必须是独一无二的，同时也要保持相同。当加密后的资料输出时，也可同时输出密码钥匙 (例如存在文件中)；或者也可以将向量初始化的值与加密后的资料一起输出。

mcrypt_get_cipher_name: | 取得编码方式的名称。
mcrypt_get_block_size: | 取得编码方式的区块大小。
mcrypt_get_key_size: | 取得编码钥匙大小。
mcrypt_create_iv: | 从随机源将向量初始化。
mcrypt_cbc: | 使用 CBC 将资料加/解密。
mcrypt_cfb: | 使用 CFB 将资料加/解密。
mcrypt_ecb: | 使用 ECB 将资料加/解密。
mcrypt_ofb: | 使用 OFB 将资料加/解密。


mhash 哈稀函数库

本函数库共有 4 个函数

本函数库支持多种哈稀演算法，例如最出名的 MD5、SHA1 或 GOST，还有其它多种的哈稀演算法，列示如下：

  • MHASH_MD5
  • MHASH_SHA1
  • MHASH_HAVAL
  • MHASH_RIPEMD160
  • MHASH_RIPEMD128
  • MHASH_SNEFRU
  • MHASH_TIGER
  • MHASH_GOST
  • MHASH_CRC32
  • MHASH_CRC32B

欲使用本函数库要先下载 mhash-x.x.x.tar.gz，网址为 http://sasweb.de/mhash。当然还要编译 mhash 程序库，之后才能编译 PHP 程序，在编译 PHP 程序时，记得要加 --with-mhash 选项打开系统的 mhash 功能。

本函数库适合用来产生检查码 (checksums)、数位代信息或者其它功能，如下例：

<?php
$input = "Let us meet at 9 o' clock at the secret place.";
$hash = mhash(MHASH_SHA1, $input);
print "哈稀值为 ".bin2hex($hash)."\n";
?>

在浏览器看到的字符串是

哈稀值为 d3b85d710d8f6e4e5efd4d5e67d041f9cecedafe

mhash_get_hash_name: | 取得哈稀演算法名称。
mhash_get_block_size: | 取得哈稀方式的区块大小。
mhash_count: | 取得哈稀 ID 的最大值。
mhash: | 计算哈稀值。


杂项函数库

本函数库共有 19 个函数

所有很难在 PHP 函数中归类的函数都属于本函数库。

connection_aborted: | 若链接中断则返回 true。
connection_status: | 取得连接状态。
connection_timeout: | 若超过 PHP 程序执行时间则返回 true。
eval: | 将值代入字符串之中。
extract: | 汇入数组到符号表。
die: | 输出信息并中断 PHP 程序。
exit: | 结束 PHP 程序。
function_exists: | 查核函数是否已定义。
ignore_user_abort: | 连接中断后程序是否执行。
iptcparse: | 使用 IPTC 模块解析位资料。
leak: | 泄出内存。
pack: | 压缩资料到位字符串之中。
register_shutdown_function: | 定义 PHP 程序执行完成后执行的函数。
serialize: | 储存资料到系统中。
sleep: | 暂停执行。
unpack: | 解压缩位字符串资料。
unserialize: | 取出系统资料。
uniqid: | 产生只一的值。
usleep: | 暂停执行。


mSQL 数据库函数库

本函数库共有 40 个函数

mSQL 是个小巧的数据库系统，可以到 http://www.hughes.com.au 取得更多有关 mSQL 数据库的详情。

msql: | 送出 query 字符串。
msql_affected_rows: | 得到 mSQL 最后操作影响的列数目。
msql_close: | 关闭 mSQL 数据库连接。
msql_connect: | 打开 mSQL 数据库连接。
msql_create_db: | 建立一个新的 mSQL 数据库。
msql_createdb: | 建立一个新的 mSQL 数据库。
msql_data_seek: | 移动内部返回指针。
msql_dbname: | 取得目前所在数据库名称。
msql_drop_db: | 删除指定的 mSQL 数据库。
msql_dropdb: | 删除指定的 mSQL 数据库。
msql_error: | 取得最后错误信息。
msql_fetch_array: | 返回数组资料。
msql_fetch_field: | 取得字段信息。
msql_fetch_object: | 返回类资料。
msql_fetch_row: | 返回单列的各字段。
msql_fieldname: | 返回指定字段的名称。
msql_field_seek: | 配置指针到返回值的某字段。
msql_fieldtable: | 获得字段的资料表 (table) 名称。
msql_fieldtype: | 获得字段的类型。
msql_fieldflags: | 获得字段的标志。
msql_fieldlen: | 获得字段的长度。
msql_free_result: | 释放返回占用内存。
msql_freeresult: | 释放返回占用内存。
msql_list_fields: | 列出指定资料表的字段 (field)。
msql_listfields: | 列出指定资料表的字段 (field)。
msql_list_dbs: | 列出可用数据库 (database)。
msql_listdbs: | 列出可用数据库 (database)。
msql_list_tables: | 列出指定数据库的资料表 (table)。
msql_listtables: | 列出指定数据库的资料表 (table)。
msql_num_fields: | 取得返回字段的数目。
msql_num_rows: | 取得返回列的数目。
msql_numfields: | 取得返回字段的数目。
msql_numrows: | 取得返回列的数目。
msql_pconnect: | 打开 mSQL 服务器持续连接。
msql_query: | 送出一个 query 字符串。
msql_regcase: | 将字符串逐字返回大小写字符。
msql_result: | 取得查询 (query) 的结果。
msql_select_db: | 选择一个数据库。
msql_selectdb: | 选择一个数据库。
msql_tablename: | 返回指定资料表的名称。


SQL Server 数据库函数库

本函数库共有 16 个函数

SQL Server 是 Microsoft 从 SyBASE 取得并修改的数据库系统，它只能在 Windows NT Server 上面执行。使用本函数只能使用 Windows NT Server 作为 PHP 的执行平台。

Microsoft SQL Server 的 query 语法为 Transact-SQL，和 SyBASE 的语法几乎相同。本数据库可能是所有 PHP 所支持数据库中，中文书籍最多的数据库了。

mssql_affected_rows: | 取得最后 query 影响的列数。
mssql_close: | 关闭与数据库的连接。
mssql_connect: | 连上数据库。
mssql_data_seek: | 移动列指针。
mssql_fetch_array: | 返回数组资料。
mssql_fetch_field: | 取得字段信息。
mssql_fetch_object: | 返回类资料。
mssql_fetch_row: | 返回单列的各字段。
mssql_field_seek: | 配置指针到返回值的某字段。
mssql_free_result: | 释放返回占用内存。
mssql_num_fields: | 取得返回字段的数目。
mssql_num_rows: | 取得返回列的数目。
mssql_pconnect: | 打开 MS SQL 服务器持续连接。
mssql_query: | 送出一个 query 字符串。
mssql_result: | 取得查询 (query) 的结果。
mssql_select_db: | 选择一个数据库。


MySQL 数据库函数库

本函数库共有 32 个函数

本函数库供存取 MySQL 数据库。有关 MySQL 的细节，及下载 MySQL 数据库，请到这个网址 http://www.mysql.com。而网络上也有许多提供处理 MySQL 的用户界面程序，建议到 http://www.phpwizard.net/phpMyAdmin 下载 phpMyAdmin，可以使用浏览器操作及管理 MySQL。整套 phpMyAdmin 程序，是用 PHP3 完成的，亦可同时研究 PHP3 与 MySQL 的链接。

mysql_affected_rows: | 得到 MySQL 最后操作影响的列数目。
mysql_close: | 关闭 MySQL 服务器连接。
mysql_connect: | 打开 MySQL 服务器连接。
mysql_create_db: | 建立一个 MySQL 新数据库。
mysql_data_seek: | 移动内部返回指针。
mysql_db_query: | 送查询字符串 (query) 到 MySQL 数据库。
mysql_drop_db: | 移除数据库。
mysql_errno: | 返回错误信息代码。
mysql_error: | 返回错误信息。
mysql_fetch_array: | 返回数组资料。
mysql_fetch_field: | 取得字段信息。
mysql_fetch_lengths: | 返回单列各栏资料最大长度。
mysql_fetch_object: | 返回类资料。
mysql_fetch_row: | 返回单列的各字段。
mysql_field_name: | 返回指定字段的名称。
mysql_field_seek: | 配置指针到返回值的某字段。
mysql_field_table: | 获得目前字段的资料表 (table) 名称。
mysql_field_type: | 获得目前字段的类型。
mysql_field_flags: | 获得目前字段的标志。
mysql_field_len: | 获得目前字段的长度。
mysql_free_result: | 释放返回占用内存。
mysql_insert_id: | 返回最后一次使用 INSERT 指令的 ID。
mysql_list_fields: | 列出指定资料表的字段 (field)。
mysql_list_dbs: | 列出 MySQL 服务器可用的数据库 (database)。
mysql_list_tables: | 列出指定数据库的资料表 (table)。
mysql_num_fields: | 取得返回字段的数目。
mysql_num_rows: | 取得返回列的数目。
mysql_pconnect: | 打开 MySQL 服务器持续连接。
mysql_query: | 送出一个 query 字符串。
mysql_result: | 取得查询 (query) 的结果。
mysql_select_db: | 选择一个数据库。
mysql_tablename: | 取得资料表名称。


Sybase 数据库函数库

本函数库共有 16 个函数

这个函数库和 SQL Server 数据库函数库几乎完全相同，实际上是本函数先出现，之后才出现 SQL Server 数据库函数库。而就用户观点 Sybase 和 MS SQL Server 6.x 也是几乎相同的。当然 MS SQL Server 7.0 之后的差异就比较大了。

sybase_affected_rows: | 取得最后 query 影响的列数。
sybase_close: | 关闭与数据库的连接。
sybase_connect: | 连上数据库。
sybase_data_seek: | 移动列指针。
sybase_fetch_array: | 返回数组资料。
sybase_fetch_field: | 取得字段信息。
sybase_fetch_object: | 返回类资料。
sybase_fetch_row: | 返回单列的各字段。
sybase_field_seek: | 配置指针到返回值的某字段。
sybase_free_result: | 释放返回占用内存。
sybase_num_fields: | 取得返回字段的数目。
sybase_num_rows: | 取得返回列的数目。
sybase_pconnect: | 打开服务器持续连接。
sybase_query: | 送出一个 query 字符串。
sybase_result: | 取得查询 (query) 的结果。
sybase_select_db: | 选择一个数据库。


网络函数库

本函数库共有 13 个函数

fsockopen: | 打开网络的 Socket 链接。
pfsockopen: | 打开网络的 Socket 持续链接。
set_socket_blocking: | 切换阻塞与无阻塞模式。
gethostbyaddr: | 返回机器名称。
gethostbyname: | 返回 IP 网址。
gethostbynamel: | 返回机器名称的所有 IP。
checkdnsrr: | 检查指定网址的 DNS 记录。
getmxrr: | 取得指定网址 DNS 记录之 MX 字段。
openlog: | 打开系统纪录。
syslog: | 纪录至系统纪录。
closelog: | 关闭系统纪录。
debugger_on: | 使用内建的 PHP 调试器。
debugger_off: | 关闭内建的 PHP 调试器。


NIS 函数库

本函数库共有 8 个函数

NIS 的全名为 Network Information System，另外一个说法就是 YP (Yellow Pages)。NIS 或 YP 可以让许多不同的 UNIX 机器拥有相同的系统信息，例如相同的用户帐号密码，使系统管理人员及用户都容易在不同的机器间穿梭，不可避免的，会有安全上的缺点，不过安全就不是这儿所讨论的了。而关于 NIS 方面的中英文书籍在市面上都可以找到，或者也可以参考 http://www.desy.de/~sieversm/ypdoku/ypdoku/ypdoku.html。

欲使用 NIS 函数库，记得要在编译 PHP 时将 YP 的选项打开，即加上 --with-yp 选项。

yp_get_default_domain: | 取得机器的 Domain。
yp_order: | 返回 map 的序数。
yp_master: | 取得 NIS 的 Master。
yp_match: | 取得指定资料。
yp_first: | 返回 map 上第一笔符合的资料。
yp_next: | 指定 map 的下笔资料。
yp_errno: | 取得先前 YP 操作的错误码。
yp_err_string: | 取得先前 YP 操作的错误字符串。


ODBC 数据库链接函数库

本函数库共有 25 个函数

开放资料链接 (Open Database Connectivity, ODBC) 是链接数据库的共通界面。ODBC 是由微软主导的数据库链接标准，实作环境也以微软的系统最成熟。在 UNIX 系统中，通常要使用其它厂商所提供的 ODBC 界面，有些 UNIX 厂商会自己提供 ODBC 界面 (如 SUN 有为 Solaris 提供 ODBC)。

ODBC 和数据库的查询采用 SQL 语言，这和大部份的数据库查询方式一样，这使得系统可以很容易和各种数据库沟通。当然，透过 ODBC 界面，后端的数据库不一定要 DBMS 这种大型数据库系统，亦可以是资料表 (如 Microsoft Access)、或者是试算表 (如 Microsoft Excel)。

odbc_autocommit: | 开关自动改动功能。
odbc_binmode: | 配置二进位资料处理方式。
odbc_close: | 关闭 ODBC 链接。
odbc_close_all: | 关闭所有 ODBC 链接。
odbc_commit: | 改动 ODBC 数据库。
odbc_connect: | 链接至 ODBC 数据库。
odbc_cursor: | 取得游标名。
odbc_do: | 执行 SQL 指令。
odbc_exec: | 执行 SQL 指令。
odbc_execute: | 执行预置 SQL 指令。
odbc_fetch_into: | 取得返回的指定列。
odbc_fetch_row: | 取得返回一列。
odbc_field_name: | 取得字段名称。
odbc_field_type: | 取得字段资料类型。
odbc_field_len: | 取得字段资料长度。
odbc_free_result: | 释出返回资料的内存。
odbc_longreadlen: | 配置返回栏的最大值。
odbc_num_fields: | 取得字段数目。
odbc_pconnect: | 长期链接至 ODBC 数据库。
odbc_prepare: | 预置 SQL 指令。
odbc_num_rows: | 取得返回列数目。
odbc_result: | 取得返回资料。
odbc_result_all: | 返回 HTML 表格资料。
odbc_rollback: | 撤消当前交易。
odbc_setoption: | 调整 ODBC 配置。


Oracle 8 数据库函数库

本函数库共有 15 个函数

由于本函数库都是调用 Oracle8 Call-Interface (OCI8) 来存取 Oracle 数据库，因此在装设 Oracle 8 Client 的 Web 服务器上，可用本函数库存取 Oracle 7.x 或 8.x 二种版本的数据库服务器。

OCIDefineByName: | 让 SELECT 指令可使用 PHP 变量。
OCIBindByName: | 让动态 SQL 可使用 PHP 变量。
OCILogon: | 打开与 Oracle 的链接。
OCILogOff: | 关闭与 Oracle 的链接。
OCIExecute: | 执行 Oracle 的指令部分。
OCICommit: | 将 Oracle 的交易处理付诸实行。
OCIRollback: | 撤消当前交易。
OCINumRows: | 取得受影响字段的数目。
OCIResult: | 从目前列 (row) 的资料取得一栏 (column)。
OCIFetch: | 取得返回资料的一列 (row)。
OCIFetchInto: | 取回 Oracle 资料放入数组。
OCIColumnIsNULL: | 测试返回行是否为空的。
OCIColumnSize: | 取得字段类型的大小。
OCINewDescriptor: | 初始新的 LOB/FILE 描述。
OCIParse: | 分析 SQL 语法。


Oracle 数据库函数库

本函数库共有 22 个函数

要使用这个函数库，要在安装 PHP 及 Apache Server 之前先将 Oracle 数据库安装好，并确定 Oracle 能够顺利运作。之后在 PHP 配置 (configure) 时加入 --with-oracle=DIR 的选项，DIR 就是 $ORACLE_HOME 环境变量，例如：

./configure --with-oracle=/abc/def/oracle/product/7.0.3 --with-apache=../apache_1.3.x --enable-track-vars

以下的范例是 stevel@nettek-llc.com (22-Jan-1999) 所提供的。这个范例是返回 Oracle 中 sid1 数据库 (Database) 的 EMP 资料表 (Table) 所有资料。帐号是 SCOTT、密码为 TIGER。

<?php

putenv("ORACLE_SID=sid1");
putenv("ORACLE_HOME=/u01/app/oracle/product/8.0.5");

$handle = ora_plogon("SCOTT@sid1", "TIGER") or die;
$cursor = ora_open($handle);
ora_commitoff($handle);

$query = "SELECT * FROM EMP";
ora_parse($cursor, $query) or die;
ora_exec($cursor);

echo "<HTML><PRE>\n";
echo "$query\n\n";
$numcols = 0;
while(ora_fetch($cursor)) {
$numcols = ora_numcols($cursor);
for ($column=0; $column < $numcols; $column++) {
$data = trim(ora_getcolumn($cursor, $column));
if($data == "") $data = "NULL";
echo "$data\t";
}
echo "\n";
}
$numrows = ora_numrows($cursor);
echo "\nROWS RETURNED: $numrows\n";
echo "</PRE></HTML>\n";

ora_close($cursor);

?>

kk@shonline.de (05-Aug-1998) 指出 ORACLE_HOME 为 Oracle 的安装路径，ORACLE_SID 为 Oracle 的数据库名称，若不知道这二个环境变量可以用 sqlplus 连上 Oracle 来查证。

Ora_Bind: | 链接 PHP 变量到 Oracle 参数。
Ora_Close: | 关闭一个 Oracle 的 cursor。
Ora_ColumnName: | 得到 Oracle 返回列 (Column) 的名称。
Ora_ColumnType: | 得到 Oracle 返回列 (Column) 的类型。
Ora_Commit: | 将 Oracle 的交易处理付诸实行。
Ora_CommitOff: | 关闭自动执行 Oracle 交易改动的功能。
Ora_CommitOn: | 打开自动执行 Oracle 交易改动的功能。
Ora_Error: | 获得 Oracle 错误信息。
Ora_ErrorCode: | 获得 Oracle 错误代码。
Ora_Exec: | 执行 Oracle 的指令部分。
Ora_Fetch: | 取得返回资料的一列 (row)。
Ora_GetColumn: | 从返回列 (row) 的资料取得一栏 (column)。
Ora_Logoff: | 结束与 Oracle 的链接。
Ora_Logon: | 打开与 Oracle 的链接。
Ora_Open: | 打开 Oracle 的 cursor。
Ora_Parse: | 分析 SQL 语法。
Ora_Rollback: | 撤消当前交易。
Ora_Do: | 快速的 SQL 查询。
Ora_FetchInto: | 取回 Oracle 资料放入数组。
Ora_ColumnSize: | 取得字段类型的大小。
Ora_Numcols: | 取得字段的数目。
Ora_PLogon: | 打开与 Oracle 的长期链接。


Perl 相容语法函数库

本函数库共有 4 个函数

对于熟悉 Perl 的 Webmaster 来说，使用这个函数库可以将 Prel 语言中最强的样式比对功能带到 PHP 之中。更多的细节可以参考 Programming Perl 这本书第二章中有关样式比对 (Pattern Matching) 的部份 (中译本为 Perl 程序设计，第 63 页起)

preg_match: | 字符串比对解析。
preg_match_all: | 字符串整体比对解析。
preg_replace: | 字符串比对解析并取代。
preg_split: | 将字符串依指定的规则切开。


PDF 格式文件函数库

本函数库共有 65 个函数

PDF 是 Adobe 所发展的可携式文件格式，它的文件可以在网络上传输、浏览，甚至使用印表机印出，或使用其它输出装置输出，都可以保存原来的文字及图片的编排。详细的信息可以参考 Adobe 的网站。参考其中有关 PDF 或 Acrobat 的部份。

在 UNIX 系统中，可以使用 Thomas Merz 开发的 PDF 函数库。将它编译安装完成后，再编译 PHP 程序方可供 PHP 使用 pdflib。编译时可能要 JPEG library 及 TIFF library。

除了用这个函数库可以建立 PDF 文件外，FastIO 公司发展的产品 ClibPDF 也可以处理 PDF 文件。

以下为处理 PDF 文件的范例，本例对 test.pdf 加工后等待用户读取。

<?php
$fp = fopen("test.pdf", "w");
$pdf = PDF_open($fp);
pdf_set_info_author($pdf, "Uwe Steinmann");
PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");
PDF_set_info_author($pdf, "Name of Author");
pdf_set_info_creator($pdf, "See Author");
pdf_set_info_subject($pdf, "Testing");
PDF_begin_page($pdf, 595, 842);
PDF_add_outline($pdf, "Page 1");
pdf_set_font($pdf, "Times-Roman", 30, 4);
pdf_set_text_rendering($pdf, 1);
PDF_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
PDF_end_page($pdf);
PDF_close($pdf);
fclose($fp);
echo "<A HREF=getpdf.php3>finished</A>";
?>

上例中的 gettest.php3 可能像下面的样子

<?php
$fp = fopen("test.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>

PDF_get_info: | 返回文件信息。
PDF_set_info_creator: | 配置建档者字符串。
PDF_set_info_title: | 配置文件标题。
PDF_set_info_subject: | 配置文件主题。
PDF_set_info_keywords: | 配置文件的关键字。
PDF_set_info_author: | 配置文件作者。
PDF_open: | 建立新的 PDF 档。
PDF_close: | 关闭 PDF 档。
PDF_begin_page: | 启始 PDF 文件页面。
PDF_end_page: | 关闭 PDF 文件页面。
PDF_show: | 输出字符串到 PDF 文件。
PDF_show_xy: | 输出字符串到指定坐标。
PDF_set_font: | 配置使用的字型及大小。
PDF_set_leading: | 配置行距。
PDF_set_text_rendering: | 配置文字表现方式。
PDF_set_horiz_scaling: | 配置文字水平间距。
PDF_set_text_rise: | 配置文字高度。
PDF_set_text_matrix: | 配置文字矩阵。
PDF_set_text_pos: | 配置文字位置。
PDF_set_char_spacing: | 配置字符间距。
PDF_set_word_spacing: | 配置字间距。
PDF_continue_text: | 输出文字。
PDF_stringwidth: | 计算字符串的宽度。
PDF_save: | 储存环境变量。
PDF_restore: | 还原环境变量。
PDF_translate: | 移动原点。
PDF_scale: | 缩放类。
PDF_rotate: | 旋转类。
PDF_setflat: | 配置平滑值。
PDF_setlinejoin: | 配置连接参数。
PDF_setlinecap: | 配置 linecap 参数。
PDF_setmiterlimit: | 配置斜边界限。
PDF_setlinewidth: | 配置线宽。
PDF_setdash: | 配置虚线样式。
PDF_moveto: | 配置处理的坐标点。
PDF_curveto: | 绘贝氏曲线。
PDF_lineto: | 绘直线。
PDF_circle: | 绘圆。
PDF_arc: | 绘弧。
PDF_rect: | 绘长方形。
PDF_closepath: | 形成封闭的向量形状。
PDF_stroke: | 沿向量绘线。
PDF_closepath_stroke: | 形成封闭的向量形状并沿向量绘线。
PDF_fill: | 填满目前的向量。
PDF_fill_stroke: | 填满目前的向量并沿向量绘线。
PDF_closepath_fill_stroke: | 形成封闭的向量形状沿向量绘线并填满。
PDF_endpath: | 关闭目前向量。
PDF_clip: | 组合所有向量。
PDF_setgray_fill: | 指定填入的颜色为灰阶。
PDF_setgray_stroke: | 指定绘图的颜色为灰阶。
PDF_setgray: | 指定绘图的颜色为灰阶并填入。
PDF_setrgbcolor_fill: | 指定填入的颜色为彩色。
PDF_setrgbcolor_stroke: | 指定绘图的颜色为彩色。
PDF_setrgbcolor: | 指定绘图的颜色为彩色并填入。
PDF_add_outline: | 目前页面加入书签。
PDF_set_transition: | 配置页的转换。
PDF_set_duration: | 配置二页的切换时间。
PDF_open_gif: | 打开 GIF 图档。
PDF_open_memory_image: | 打开内存图档。
PDF_open_jpeg: | 打开 JPEG 图档。
PDF_close_image: | 关闭图档。
PDF_place_image: | 放置图片到 PDF 档指定位置。
PDF_put_image: | 放置图片到 PDF 档。
PDF_execute_image: | 放置 PDF 档中图片到指定位置。
PDF_add_annotation: | 加入注释。


PostgreSQL 数据库函数库

本函数库共有 32 个函数

Postgres 数据库是由柏克莱大学电脑科学系所开发的数据库系统，为类关联式数据库的先驱。它提供 SQL92/SQL3 语法。PostgreSQL 是公开使用的免费系统。更多细节可在 http://www.PostgreSQL.org 站上看到。

在 phpWizard.net 网站上也有用 Browser 管理 PostgreSQL 的套装程序 PostgresAdmin。可以用它来轻松管理 PostgreSQL 数据库。

在公元 1998 年的 PostgreSQL 6.3 版之后，可以使用 UNIX 上的 domain sockets。postmaster 加上参数 -i 就可以使用，PostgreSQL 系统会用到 /tmp/.s.PGSQL.5432 的文件。

下面为使用 LOB (Large Object) 的例子

<?php
$database = pg_Connect ("", "", "", "", "jacarta");
pg_exec ($database, "begin");
$oid = pg_locreate ($database);
echo ("$oid\n");
$handle = pg_loopen ($database, $oid, "w");
echo ("$handle\n");
pg_lowrite ($handle, "gaga");
pg_loclose ($handle);
pg_exec ($database, "commit")
pg_exec ($database, "end")
?>

pg_Close: | 关闭 PostgreSQL 服务器连接。
pg_cmdTuples: | 取得被 SQL 指令影响的资料笔数。
pg_Connect: | 打开 PostgreSQL 服务器连接。
pg_DBname: | 取得目前的数据库名称。
pg_ErrorMessage: | 返回错误信息。
pg_Exec: | 执行 query 指令。
pg_Fetch_Array: | 返回数组资料。
pg_Fetch_Object: | 返回类资料。
pg_Fetch_Row: | 返回单列的各字段。
pg_FieldIsNull: | 检查字段是否有资料。
pg_FieldName: | 返回指定字段的名称。
pg_FieldNum: | 取得指定字段的行数。
pg_FieldPrtLen: | 计算可列示的长度。
pg_FieldSize: | 计算指定字段的长度。
pg_FieldType: | 获得目前字段的类型。
pg_FreeResult: | 释放返回占用内存。
pg_GetLastOid: | 取得最后的类代码。
pg_Host: | 取得连接机器名称。
pg_loclose: | 关闭大型类。
pg_locreate: | 建立大型类。
pg_loopen: | 打开大型类。
pg_loread: | 读取大型类。
pg_loreadall: | 读取大型类并输出。
pg_lounlink: | 删除大型类。
pg_lowrite: | 读取大型类。
pg_NumFields: | 取得返回字段的数目。
pg_NumRows: | 取得返回列的数目。
pg_Options: | 取得连接机器选项。
pg_pConnect: | 打开 PostgreSQL 服务器持续连接。
pg_Port: | 取得连接机器埠号。
pg_Result: | 取得查询 (query) 的结果。
pg_tty: | 取得连接机器终端机。


URL 处理函数库

本函数库共有 5 个函数

parse_url: | 解析 URL 字符串。
urldecode: | 还原 URL 编码字符串。
urlencode: | 将字符串以 URL 编码。
base64_encode: | 将字符串以 BASE64 编码。
base64_decode: | 将 BASE64 编码字符串解码。


正则表达式函数库

本函数库共有 6 个函数

关于正则表达式 (Regular expression)，似乎译成：字符串解析处理，较合乎字面上的意义。但目前所有的相关书籍都译成正则表达式或是正规表示法....等等，实际上是负责字符串解析比对，并对字符串做相关的处理。

本函数库让 PHP 也能处理复杂的字符串操作。它采用了 POSIX 1003.2 的扩充常规处理 (regular expression) 的标准。更多关于正则表达式的信息可以参考 UNIX Shell、Perl 或是 awk 等相关的书籍。网络上也有张耀仁先生所作的正规表示式的入门与应用文章。

ereg: | 字符串比对解析。
ereg_replace: | 字符串比对解析并取代。
eregi: | 字符串比对解析，与大小写无关。
eregi_replace: | 字符串比对解析并取代，与大小写无关。
split: | 将字符串依指定的规则切开。
sql_regcase: | 将字符串逐字返回大小写字符。


信号与共享内存函数库

本函数库共有 9 个函数

本函数库提供 System V 的信号处理机制。这个机制可以让系统限制同时使用行程所存取的资源。本函数库亦提供了内存共享的机制，可让不同的程序存取相同的变量，方便交换程序信息。

下表为系统的共享内存的限制值

SHMMAX | 共享内存的最大值，一般为 131072 bytes
SHMMIN | 共享内存的最小值，一般为 1 byte
SHMMNI | 内存共享部分的最大值，一般为 100
SHMSEG | 每个行程所能共享的最大内存空间，一般为 6

sem_get: | 取得信号代码。
sem_acquire: | 捕获信号。
sem_release: | 释出信号。
shm_attach: | 打开建立共享内存空间。
shm_detach: | 中止共享内存空间链接。
shm_remove: | 清除内存空间。
shm_put_var: | 加入或更新内存空间中的变量。
shm_get_var: | 取得内存空间中指定的变量。
shm_remove_var: | 删除内存空间中指定的变量。


Solid 数据库链接函数库

本函数库共有 10 个函数

理论上，使用标准的 ODBC 会比使用本函数好。当然也可以使用本函数，只是较不鼓励 Solid 函数库。

solid_close: | 关闭 solid 链接。
solid_connect: | 链接至 solid 数据库。
solid_exec: | 执行 SQL 指令。
solid_fetchrow: | 取得返回一列。
solid_fieldname: | 取得字段名称。
solid_fieldnum: | 取得字段数目。
solid_freeresult: | 释出返回资料的内存。
solid_numfields: | 取得字段数目。
solid_numrows: | 取得返回列数目。
solid_result: | 取得返回资料。


SNMP 网管函数库

本函数库共有 5 个函数

SNMP (网管协议, Simple Network Management Protocol) 是身为 MIS 或是网络管理人员所必须要碰到的重要课题，中文方面可参考张苑蓉所译的 SNMP 网络管理协议 (ISBN: 957-8247-14-1)，或者直接参考 RFC1089 文件。另外在 http://www.snmp.com 也有许多资料。

要在 PHP 中使用 SNMP 网管函数，需要确定是否可以使用 SNMP 功能。UNIX 系统需要先加装 UCD SNMP 程序，可在 http://ucd-snmp.ucdavis.edu 取得。Windows NT 需要先安装 SNMP 的系统服务。Windows 95/98 系列则无法使用本功能。

值得注意的是 UNIX 平台在编译 UCD SNMP 程序之前，要先将 config.h 文件中的 NO_ZEROLENGTH_COMMUNITY 常量 define 设成 1，也就是将该行的行首 # 字符删掉。如下例

define NO_ZEROLENGTH_COMMUNITY 1

若网络部分 (segmentation) 有怪异的情形，可能就不能用上面的方式了。而若懒得重新编译 UCD SNMP，可以在配置 PHP 时加入 --enable-ucd-snmp-hack 的选项。

snmpget: | 取得指定类识别码。
snmpwalk: | 取得所有类。
snmpwalkoid: | 取得网络本体树状信息。
snmp_get_quick_print: | 取得 UCD 函数库中的 quick_print 值。
snmp_set_quick_print: | 配置 UCD 函数库中的 quick_print 值。


字符串处理函数库

本函数库共有 51 个函数

AddSlashes: | 字符串加入斜线。
bin2hex: | 二进位转成十六进位。
Chop: | 去除连续空白。
Chr: | 返回序数值的字符。
chunk_split: | 将字符串分成小段。
convert_cyr_string: | 转换古斯拉夫字符串成其它字符串。
crypt: | 将字符串用 DES 编码加密。
echo: | 输出字符串。
explode: | 切开字符串。
flush: | 清出输出缓冲区。
get_meta_tags: | 抽出文件所有 meta 标记的资料。
htmlspecialchars: | 将特殊字符转成 HTML 格式。
htmlentities: | 将所有的字符都转成 HTML 字符串。
implode: | 将数组变成字符串。
join: | 将数组变成字符串。
ltrim: | 去除连续空白。
md5: | 计算字符串的 MD5 哈稀。
nl2br: | 将换行字符转成 <br>。
Ord: | 返回字符的序数值。
parse_str: | 解析 query 字符串成变量。
print: | 输出字符串。
printf: | 输出格式化字符串。
quoted_printable_decode: | 将 qp 编码字符串转成 8 位字符串。
QuoteMeta: | 加入引用符号。
rawurldecode: | 从 URL 专用格式字符串还原成普通字符串。
rawurlencode: | 将字符串编码成 URL 专用格式。
setlocale: | 配置地域化信息。
similar_text: | 计算字符串相似度。
soundex: | 计算字符串的读音值
sprintf: | 将字符串格式化。
strchr: | 寻找第一个出现的字符。
strcmp: | 字符串比较。
strcspn: | 不同字符串的长度。
strip_tags: | 去掉 HTML 及 PHP 的标记。
StripSlashes: | 去掉反斜线字符。
strlen: | 取得字符串长度。
strrpos: | 寻找字符串中某字符最后出现处。
strpos: | 寻找字符串中某字符最先出现处。
strrchr: | 取得某字符最后出现处起的字符串。
strrev: | 颠倒字符串。
strspn: | 找出某字符串落在另一字符串遮罩的数目。
strstr: | 返回字符串中某字符串开始处至结束的字符串。
strtok: | 切开字符串。
strtolower: | 字符串全转为小写。
strtoupper: | 字符串全转为大写。
str_replace: | 字符串取代。
strtr: | 转换某些字符。
substr: | 取部份字符串。
trim: | 截去字符串首尾的空格。
ucfirst: | 将字符串第一个字符改大写。
ucwords: | 将字符串每个字第一个字母改大写。


变量处理函数库

本函数库共有 17 个函数

gettype: | 取得变量的类型。
intval: | 变量转成整数类型。
doubleval: | 变量转成倍浮点数类型。
empty: | 判断变量是否已配置。
is_array: | 判断变量类型是否为数组类型。
is_double: | 判断变量类型是否为倍浮点数类型。
is_float: | 判断变量类型是否为浮点数类型。
is_int: | 判断变量类型是否为整数类型。
is_integer: | 判断变量类型是否为长整数类型。
is_long: | 判断变量类型是否为长整数类型。
is_object: | 判断变量类型是否为类类型。
is_real: | 判断变量类型是否为实数类型。
is_string: | 判断变量类型是否为字符串类型。
isset: | 判断变量是否已配置。
settype: | 配置变量类型。
strval: | 将变量转成字符串类型。
unset: | 删除变量。


Vmailmgr 邮件处理函数库

本函数库共有 5 个函数

本函数需要 qmail 及 vmailmgr，可以到 http://www.qmail.org 及 http://www.qcc.sk.ca/~bguenter/distrib/vmailmgr/ 取得相关的资料及程序。

在使用时需要二个变量，分别为 domain 名字及密码，密码只有前八位数有效。例如

<?php
dl("php3_vmailmgr.so"); //载入动态函数库
$vdomain="vdomain.com";
$basepwd="password";
// 以下为欲使用的 Vmailmgr 函数
?>

vm_adduser: | 加入新用户。
vm_addalias: | 加入新别名。
vm_passwd: | 改变用户密码。
vm_delalias: | 删除别名。
vm_deluser: | 删除用户。


WDDX 函数库

本函数库共有 6 个函数

WDDX 为全球信息网分散式文件交换，全名为 Web Distributed Data Exchange。其实 WDDX 可以算是 XML 的一个分支。更多有关 WDDX 的信息可以参考 http://www.wddx.org。

例一: 本例将单一值连续化

<?php
print wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

返回到浏览器的资料为

<wddxPacket version='0.9'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

例二: 本例将 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);
print htmlentities($packet);
?>

返回到浏览器的资料为

<wddxPacket version='0.9'><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>

wddx_serialize_value: | 将单一值连续化。
wddx_serialize_vars: | 将多值连续化。
wddx_packet_start: | 开始新的 WDDX 封包。
wddx_packet_end: | 结束的 WDDX 封包。
wddx_add_vars: | 将 WDDX 封包连续化。
wddx_deserialize: | 将 WDDX 封包解连续化。


压缩文件函数库

本函数库共有 15 个函数

欲使用本函数库需先安装 zlib，可到 http://www.cdrom.com/pub/infozip/zlib/ 取得该函数库。

gzclose: | 关闭压缩文件。
gzeof: | 判断是否在压缩文件尾。
gzfile: | 读压缩文件到数组中。
gzgetc: | 读压缩文件中的字符。
gzgets: | 读压缩文件中的字符串。
gzgetss: | 读压缩文件中的字符串，并去掉 HTML 指令。
gzopen: | 打开压缩文件。
gzpassthru: | 解压缩指针后全部资料。
gzputs: | 资料写入压缩文件。
gzread: | 压缩文件读出指定长度字符串。
gzrewind: | 重设压缩文件指针。
gzseek: | 设压缩文件指针至指定处。
gztell: | 取得压缩文件指针处。
readgzfile: | 读出压缩文件。
gzwrite: | 资料写入压缩文件。


XML 解析函数库

本函数库共有 20 个函数

XML (eXtensible Markup Language) 是一种资料文件转换的标准。详情请参考 http://www.w3.org/XML。

要使用本函数库，需先到 http://www.jclark.com/xml 取回 XML 的函数库，并且编译或安装。用 RedHat Linux 的用户可以到 http://www.guardian.no/~ssb/phpxml.html 取得 RPM 的格式档。之后要在编译 PHP 前加入 --with-xml 的配置选项。tommy@nashville.net 指出 (12-Jan-1999) 若有问题，尚需在 /usr/local/include 放入 xmltok.h 及 xmlparse.h 二个 C 语言的标头档，或是设好环境变量。

目前的版本支持三种字符集：US-ASCII、ISO-8859-1 与 UTF-8。至于 UTF-16 字符集 PHP 尚未支持。

XML 有许多错误代码，如下

  • 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
和中文有关的信息可在中央研究院的 Chinese XML Now 网站看到。而和 XML 有关的术语则使用曾士熊先生所译的 SGML 名词英汉翻译表。

xml_parser_create: | 初始 XML 解析器。
xml_set_object: | 使 XML 解析器用类。
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 文件。
xml_get_error_code: | 取得 XML 错误码。
xml_error_string: | 取得 XML 错误字符串。
xml_get_current_line_number: | 取得目前解析的行号。
xml_get_current_column_number: | 获知目前解析的第几字段。
xml_get_current_byte_index: | 取得目前解析为第几个位组。
xml_parser_free: | 释放解析占用的内存。
xml_parser_set_option: | 配置解析使用的选项。
xml_parser_get_option: | 取得解析使用的选项。
utf8_decode: | 将 UTF-8 码转成 ISO-8859-1 码。
utf8_encode: | 将 ISO-8859-1 码转成 UTF-8 码。


Session 函数库

本函数库共有 11 个函数

session_start: | 初始 session。
session_destroy: | 结束 session。
session_name: | 存取目前 session 名称。
session_module_name: | 存取目前 session 模块。
session_save_path: | 存取目前 session 路径。
session_id: | 存取目前 session 代号。
session_register: | 注册新的变量。
session_unregister: | 删除已注册变量。
session_is_registered: | 检查变量是否注册。
session_decode: | Session 资料解码。
session_encode: | Session 资料编码。


GNU 记录函数库

本函数库共有 2 个函数

要使用本函数库，要先装好 GNU Recode 函数库 3.5 版以上。同时要在编译 PHP 程序时，使用 --with-recode。

GNU 记录函数库可以在不同的字符集和它表面的编码间相互转换。若无法正确转换，它会尽可能找最正确的字符。目前它可以处理超过 150 个不同的字集 (character sets)，大部份支持的字集都是 RFC 1345 的字集。

recode_string: | 记录字符串到记录中。
recode_file: | 记录文件或文件请求到记录中。


FTP 文件传输函数库

本函数库共有 20 个函数

FTP 的全为 File Transfer Protocol，也就是文件传输协议。利用本函数库可以让 PHP 也能处理 FTP 的相关功能。本函数库需要 PHP 3.0.13 版之后才支持。

ftp_connect: | 打开 FTP 链接。
ftp_login: | 登入 FTP 服务器。
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_quit: | 关闭 FTP 连接。


MCAL 模块日历存取函数库

本函数库共有 0 个函数

整理: sadly (www.phpx.com)

[ 上一页 ]


范例程序

首先要说明的是，这几个范例程序都是不同性质的程序，每个程序在 Webmaster 学科 (若 Webmaster 也算是一门学科的话)，都是不同的主题，也是成为专业人士所必须要研究的，也因此几乎所有和 CGI 有关的书都会提到这些主题。

当然从专业角度而言，以下的程序实在太简单了，许多专业 CGI 套件提供了完整而严谨的解决方案。在这儿只是要展现出 PHP 的程序实作，并真正与网站的系统相结合。至于真正要拿这些范例来赚钱，可能还有一段距离。实际上，可以在网络上找一些现成的套件，倒是比开发还容易。

以下就是这些主题

  1. 访客计数器: 探讨如何存取文件。

  2. 用户认证: 探讨 PHP 与 MySQL 数据库的结合。并提供网页权限的架构。

  3. 聊天室: 探讨程序的共用变量文件及用外部指令操作文件。

  4. 留言板: 探讨 PHP 与 Oracle 数据库的结合。

  5. 意见信箱: 探讨 PHP 如何执行外部程序。

  6. 广告轮播: 探讨 PHP 所提供文件上传的功能。


访客计数器

访客计数器是让 Web 访客知道该网页或者网站的人气指数最直接的方法。尤其是想利用网页赚钱的人，访客人数是找广告商最好的说词。当然可以将网站来访人数写成统计报表，但总是感觉直接看到比较真实，到底眼见为凭。

在上图中，访客计数器的流程如下

  1. 第一位用户浏览某页。
  2. 服务器程序从数据库或文件中读取该页被浏览次数。
  3. 将次数加一储存，并将它送回第一位用户。
  4. 第二位用户浏览某页。
  5. 服务器程序从数据库或文件中读取该页被浏览次数。
  6. 将次数再加一储存，并将它送回第二位用户。

PHP 在没有特殊的访客计数器函数，但是我们可以用 PHP 的强大功能自已写一个访客计数器函数。

以下的函数是访客计数器的原型，是由 David W. Bettis 所提供，并经过作者少许修改。

<html>
<head>
<title>访客计数器 原型</title>
</head>
<body>
<?php
/*
simple access counter for php3
(c)1998 David W. Bettis
dbettis@eyeintegrated.com
medify by Wilson Peng
*/

$counterFile = "/tmp/counter.txt";

function displayCounter($counterFile) {
$fp = fopen($counterFile,"rw");
$num = fgets($fp,5);
$num += 1;
print "您是第 "."$num"." 位无聊份子";
exec( "rm -rf $counterFile");
exec( "echo $num > $counterFile");
}

if (!file_exists($counterFile)) {
exec( "echo 0 > $counterFile");
}

displayCounter($counterFile);

?>
</body>
</html>

Copyright © 1998 David W. Bettis

在读取到本页时，PHP 程序先找寻 /tmp/counter.txt 文件是否存在，若不存在，则建立一个 counter.txt 文件，然后将 0 写入文件。然后读取 counter.txt 文件的内容，也就是纯文字叠，再将内文的数字存入 $num 变量中。在 $num 的变量出现在浏览器前，还有经过加一的步骤，让用户可以增加。当然，如果想灌水，就在加一步骤时加二或者加三，不过自欺是无用的。最后将访客人数再回存 /tmp/counter.txt 就一切 OK。

当然，每一页都要这样写，岂不麻烦到了极点。这时，我们可以利用 PHP 提供的 require() 功能，将计数器整理成一个函数，酱子在使用上就方便多多了。

首先要先将 Apache 的配置文件 (httpd.conf) 加入 PHP include 文件的路径。例如要设所有的 include 文件都在 http://abcdefghijk.com.tw/include 中，可以在 httpd.conf 加入下面的例子

php3_include_path .:./include:../include

别忘了重新启动 Apache 服务器，新增的 include 路径才有效。

./apachectl restart

再来就在服务器的 .../include 目录中放入以下的文件，文件名存成 counter.inc

下面就是 MyCounter() 函数。为了让读者方便了解，程序中的变量 $counterFile、$fp 及 $num 保持和 David W. Bettis 所配置的计数器中的变量功能相同。

<?php
//---------------------------
// 访客计数器函数 MyCounter()
// Author: Wilson Peng
// Copyright (C) 1999
//---------------------------
function MyCounter() {
$counterFile="/tmp".$GLOBALS["PHP_SELF"];
if (!file_exists($counterFile)) {
if (!file_exists(dirname($counterFile))) {
mkdir(dirname($counterFile), 0700);
}
exec("echo 0 > $counterFile");
}
$fp = fopen($counterFile,"rw");
$num = fgets($fp,5);
$num += 1;
print "$num";
echo $counterFile;
exec("rm -rf $counterFile");
exec("echo $num > $counterFile");
}
?>

Copyright © 1999, Wilson Peng

当然，要用的话要加 Homepage 中嵌入 MyCounter() 函数，就可以使用了

<?php
require("counter.inc");
?>
<html>
<head>
<title>访客计数器 最终版</title>
</head>
<body>
您是第 <? MyCounter(); ?> 位参观者
</body>
</html>

Copyright © 1999, Wilson Peng

要用这个 MyCounter() 函数，先在 Homepage 的开头处加入 require() 函数，引入 MyCounter() 函数成为该 Homepage 的一部份。之后再将 <? MyCounter(); ?> 字符串放在需要计数器的地方就可以了。

function MyCounter() {

:
:
}

在建立函数时，需要用上面的格式。在自订函数名称前加入 function 字符串。

每页有用到 MyCounter() 的 Homepage 都会在 /tmp 之后加入该页的路径，这可以用 $PHP_SELF 变量达成。

$counterFile="/tmp".$GLOBALS["PHP_SELF"];

当然，若您要将 /tmp 改成别的目录也可以，不然在 SUN 等服务器，要是 reboot，/tmp 中的东西都没了，要重新开始再计数了。若您不知要使用什么目录，建议使用 /var/log/counter 这个目录，和其它的 log 等变动资料放在一起。

if (!file_exists($counterFile)) {
if (!file_exists(dirname($counterFile))) {
mkdir(dirname($counterFile), 0700);
}
exec("echo 0 > $counterFile");
}

这五行主要是检查 $counterFile 是否存在，若文件不存在则看目录是否存在，决定要不要建立目录。之后就建立文件，并写入 0。

$fp = fopen($counterFile,"rw");
$num = fgets($fp,5);
$num += 1;
print "$num";
echo $counterFile;

这五行就是打开计数器存放的文件，并将它累加后的结果送到浏览器端。

exec("rm -rf $counterFile");
exec("echo $num > $counterFile");

最后将计数器文件删除，再重新建立一个。就完成了这个以文件为基础的纯文字计数器。


用户认证

在专门 Web 网站上，常常会需要用户的帐号及密码，也就是身份确认的步骤。早期的 NCSA httpd 服务器并没有提供这项用户确认的功能，Webmaster 只能用手工打造一个身份确认的 CGI 程序。

自 CERN httpd 之后的 Web 服务器大部份都提供了用户身份确认的功能。仅管每套 Web 服务器的配置都不太相同，但在配置上都大同小异。

以下就是 Apache 服务器上的用户身份确认的配置。

<Directory /home/MyMember>
AuthType Basic
AuthName MyMember
AuthUserFile /usr/local/MyMember.txt
Options Includes ExecCGI
<Limit GET POST>
require valid-user
</Limit>
</Directory>

在这个例子中，当用户在看 MyMember 目录下所有的文件，包括图片文件及其它各式文件时，都需要用户的帐号密码确认。而用户的帐号及密码文件都存在于 /usr/local/MyMember.txt 之中。

这个帐号密码文件 /usr/local/MyMember.txt 的样子可能如下例。其中冒号前的字符串是用户帐号，冒号之后的字符串是经过不可还原加密的密码，编码一般都是使用传统的 DES 编码，密码的头两个字是类似种子的字符 (salt)，本例中都是 3P。每行代表一位用户。当然 Webmaster 要自行控制重覆帐号的情形。比较特殊是在 Win32 系统上架 Apache 的情形，冒号后的密码不可加密，因为 Win32 没有提供这方面的编码 API，因此用户密码以明码的方式存在。

john1234:3PWudBlJMiwro
queenwan:3PFNVLNPN9W0M
noname00:3PEsXaJx5pk7E
wilson49:3PjoWb0EnaG22
rootboot:3PIt0snI6.84E
sun_moon:3PvymMeNOc.x.
nobody38:3PbskPKwV94hw

在 Apache 1.3.6 版上，可以用 ~apache/bin/htpasswd 来产生单笔的帐号及密码，但对于需要大笔资料的商业网站，可能就需要自行写程序来处理了。UNIX 上需要调用 crypt() 来处理编码。

在一切都配置好了之后，连接时就会在浏览器出现查核密码的窗口，如上图就是 SEEDNet 的 MySEED 网站的用户查核机制。在输入了帐号及密码后，浏览器会将它用 BASE64 编码后，传到服务器端。当然 BASE64 只是编码不是加密，因此在网络上这种传输的安全性仍然不高，还是有可能被中间的刽客截下，再将 BASE64 还原，这也是整个用户认证中最美中不足的地方，或许日后支持摘要认证 (Digest) 及使用 MD5 编码后，可以解决这种问题。之后每一页仍然需要帐号及密码，只不过浏览器会帮你主动送出，不用再输入帐号密码了。这方面浏览器会保留到被关闭为止，下次重执行浏览器仍需输入第一次。

在用户数量少时，使用上述的方法轻松又省事。但是在用户有数万人，甚至数十万人时，会发生整个服务器的效率都被搜寻帐号密码下拖垮，可能读取一页需要数十秒到数分钟。这种情形再使用服务器提供的密码查核机制就不太明智了。在 Netscape Enterprise Server 上可能就可以使用 NSAPI 来开发自己的查核方式，在 IIS 上也可以用 ISAPI 过滤器开发。写 C/C++ 程序调用 NSAPI/ISAPI 总是很累，在 PHP 上有了另外的选择，这也是本节的主题。

整理: sadly (www.phpx.com)

PHP 的 HTTP 相关函数库提供了 header() 的函数。许多 Web 服务器与客户端的互动，都可以使用这个函数来变戏法。例如在某个 PHP 页面最开始处，也就是第一行或第二行，加入以下的程序，可以将用户重定向到作者的网页。

<?php
header("Location: http://wilson.gs");
exit;
?>

当然，在上述程序之后的 HTML 文字或者是 PHP 程序都永远不会出现在用户端了。

同样的道理，我们就用 header() 来变用户认证的把戏。可以在 PHP 的最开头送出字符串到用户端，就会在用户端出现下图的窗口。

<?php
Header("WWW-Authenticate: Basic realm=\"Member\"");
Header("HTTP/1.0 401 Unauthorized");
?>

在程序中字符串 realm=\"Member\" 中的 Member 字样出现在图中，当然若使用中文字取代，浏览器端也会出现中文字，如上面的 MySEED 图。若 Web 网站用户还有其它语文，如英文或日文，送出中文的 realm 字符串似乎就比较不合适。无论如何，这都要视网站的性质及用户定位而决定。

当然这还是很粗糙，因为除了送出窗口后，就没有下文了，帐号输入正确也好，输入错误也罢，都不会有任何的结果。我们需要再更进阶的程序来处理。

整理: sadly (www.phpx.com)

在后端的使用认证上，考虑使用数据库作为储存帐号及密码的后端，在这种架构可以容纳许多的用户，管它一万个用户还是十万个用户。若您的站已有数十万个用户帐号，那么恭喜您，您的站算是世界级的大站了。MySQL 是个不错的选择，许多网站，甚至是商业化的网站都用它来做后端的数据库。当然您要架真正的商业网站，钱不是问题的话，那可以使用口碑最广的 Oracle 数据库系列。

要在 PHP 中使用任何数据库，都要先将数据库的服务器端及客户端配置好，之后才编译 PHP 及 Apache 系统。

准备好 MySQL 及 PHP 之后，先在 MySQL 中加入新的数据库，本例是加入 mymember，用别的名字当然也可以。MySQL 要加入数据库 (Database) 很容易，只要在 MySQL 存放 Database 的地方 mkdir 就可以了。例如在 UNIX Shell 下打

hahaha:/usr/local/mysql/data# mkdir mymember

在建立了数据库之后，尚需要建立资料表格 (Table) 方能使用。配置的表格如下，可以将它储在 /tmp/memberauth.sql 中

CREATE TABLE MemberAuth (
   Serial mediumint(9) NOT NULL auto_increment,
   Username char(8) NOT NULL,
   Password char(8) NOT NULL,
   Enable char(1) DEFAULT '0' NOT NULL,
   PRIMARY KEY (Serial)
);
文件 memberauth.sql

先看看 memberauth.sql 的这些字段。Serial 是个自动增加的整数字段，每输入一笔资料，就会自动加一，这当然不能是空的字段，于是就用 NOT NULL 了。第两个字段是 Username，代表用户的帐号，为了统一以及适应各系统起见，配置成八个字，当然这个字段也不能是空的。Password 是第三个字段，为用户的密码。第四个字段 Enable 做为帐号是否有效的标志，设计上 0 表示无用，1 表可用，日后还可加入其它值做不同的用途。

设计好了资料表之后，就要将资料表加入数据库了。由于常要使用 MySQL 数据库，可以到 http://www.phpwizard.net/phpMyAdmin 下载 phpMyAdmin，使用浏览器操作及管理 MySQL，轻松又方便。若使用这套 phpMyAdmin 可以在它的用户界面上输入 memberauth.sql 加入 MySQL 中。或者也可以在 UNIX Shell 下输入下式，也是有同样的效果。

mysql mymember < /tmp/memberauth.sql

在准备好了之后，就可以输入用户帐号及密码在 memberauth 资料表中了。当然还是使用 phpMyAdmin 方便，用 mysql 程序就要一笔笔的 INSERT 了。

接着进入了设计函数的阶段了。

<?php
//---------------------------
// 用户认证函数 auth.inc
// Author: Wilson Peng
// Copyright (C) 1999
//---------------------------
$error401 = "/home/phpdocs/error/401.php";
if ($PHP_AUTH_PW=="") {
Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
Header("HTTP/1.0 401 Unauthorized");
include($error401);
exit;
} else {

$db_id = mysql_pconnect("localhost", "myid", "mypw");
$result = mysql_db_query("mymember","select password, enable from MemberAuth where username='$PHP_AUTH_USER'");

$row = mysql_fetch_array($result);
$MemberPasswd = $row[0];
$MemberEnable = $row[1];
if ($MemberEnable==0) {
echo "您的帐号被停用了";
exit;
}

if ($PHP_AUTH_PW!=$MemberPasswd) {
Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
Header("HTTP/1.0 401 Unauthorized");
include($error401);
exit;
}
}
?>
Copyright (C) 1999, Wilson Peng

要使用这个 auth.inc，要在每个 PHP 的第一行加入
<? require("auth.inc"); ?> 。在加入本程序的 PHP 文件都会检查帐号密码，图片等就不会检查，比起使用 Web 服务器功能的某目录下全都检查，PHP 显得有弹性多了。

$error401 = "/home/phpdocs/error/401.php";

这行表示在用户按下取消，或检查失败时，要显示给用户看的文件。

if ($PHP_AUTH_PW=="") {
Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
Header("HTTP/1.0 401 Unauthorized");
include($error401);
exit;
} else {

到 else 之前，若没有传入密码，则送出输入密码的窗口。其中的 $PHP_AUTH_USER、$PHP_AUTH_PW 是 PHP 中特殊的变量，分别代表用户确认的帐号及密码。上面的程序也是利用这两个变量来处理用户认证。

$db_id = mysql_pconnect("localhost", "myid", "mypw");
$result = mysql_db_query("mymember","select password, enable from MemberAuth where username='$PHP_AUTH_USER'");

$row = mysql_fetch_array($result);
$MemberPasswd = $row[0];
$MemberEnable = $row[1];

若用户有输入帐号及密码，则向数据库查询。同时查核该用户是否仍可使用。

if ($MemberEnable==0) {
echo "您的帐号被停用了";
exit;
}

上四行程序为帐号被停用的情形。

if ($PHP_AUTH_PW!=$MemberPasswd) {
Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
Header("HTTP/1.0 401 Unauthorized");
include($error401);
exit;
}

密码错误则再次向用户要求输入帐号及密码。

在实际使用时，可以视需要加入的网页再加入 auth.inc 这个文件，就不用连看张图形也要查一次密码，轿募服务器和用户二端的资源。当然，和 MySQL 的连系上，可以使用 mysql_pconnect() 一直和 MySQL 服务器连接。或是使用 mysql_connect() 每次重新连接，用这个函数要记得早点使用 mysql_close() 将数据库关闭。下面的程序 auth1.inc 是另一版本的认证程序，就是打开连接后马上关闭，释放资源的例子。

<?php
//---------------------------
// 用户认证函数-1 auth1.inc
// Author: Wilson Peng
// Copyright (C) 1999
//---------------------------
$error401 = "/home/phpdocs/error/401.php";
if ($PHP_AUTH_PW=="") {
Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
Header("HTTP/1.0 401 Unauthorized");
include($error401);
exit;
} else {

$db_id = mysql_connect("localhost", "myid", "mypw");
$result = mysql_db_query("mymember","select password, enable from MemberAuth where username='$PHP_AUTH_USER'");

$row = mysql_fetch_array($result);
$MemberPasswd = $row[0];
$MemberEnable = $row[1];
mysql_close($db_id);
if ($MemberEnable==0) {
echo "您的帐号被停用了";
exit;
}

if ($PHP_AUTH_PW!=$MemberPasswd) {
Header("WWW-Authenticate: Basic realm=\"超金卡会员\"");
Header("HTTP/1.0 401 Unauthorized");
include($error401);
exit;
}
}
?>
Copyright (C) 1999, Wilson Peng

在实际应用时，可以在数据库中加入更多功能，如用户分组 (CUG) 的功能；或是加入时间字段，可做到期检查。其中的变化，端赖设计者的巧思了。


聊天室

聊天室，是 Web 站上打发无聊人士的秘密武器。同时，站长或其它人员也可以在这儿杀时间。甚至发生一段轰轰烈烈的网络恋情呢，就算没有，起码可以增加打字的速度。

聊天室，其实就是多人共同使用的 CGI 程序。程序将每个人输入的字符串，依系统接收完成的时间整理过后，再送给各个用户。而 Web 聊天室和 BBS 的聊天室不同的地方是 BBS 聊天室可以每收到一句话，就马上分送给每位在聊天室的网络用户；Web 由于 CGI 程序不能像 BBS 的 telnet 一直连接，Web CGI 必须以最快的速度将信息送出，然后结束连接。会形成这种情形，就是因为 Web 聊天室还是使用 HTTP 传输协议，在 HTTP 实作的版本，无论是 0.9、1.0 或是 1.1 版都不能长期占据网络连接的 Port。

为了解决资料无法马上传输的问题，及更新信息的问题，Netscape 在 3.0 版浏览器之后使用了新的技术，而 Internet Explorer 也实作了这些 Netscape 研发出来的技术。Netscape 将它分成 Server Push 及 Client Pull 两种技术。Server Push 由 Web 服务器将资料以多重 MIME 编码，送给用户端，目前较少网站使用这种方式；而 Client Pull 则利用了 HTML 的 meta 标签，并利用 http-equiv="Refresh" 的属性，表示资料要重新载入，至于载入时间，则利用 content 属性来达成。

<meta> 标签通常都放在 <head>..</head> 的部分中，以便让浏览器可以仅早准备更新用户端的网页。下面为 meta 和 PHP 合用的例子，配置为每十五秒重新载入一次。

<meta http-equiv="Refresh" content="15; url=<? echo $PHP_SELF; ?>">

如果不用 Server Push 或是 Client Pull 来做聊天室，是否有其它的方法，让 Web 的浏览器能聊天呢？答案是肯定的。可以使用 Java 或是 ActiveX (限 IE4、5) 来做甚至自行开发专属的 Browser Plug-in 程序 (如奇摩的聊天室)，不过这就和 PHP 没有关系了，不是我们要的重点。

除此之外，由于定期更新所有网友的留言，为了怕写了一半因为 refresh 而被清掉尚未写好的字符串，因此将聊天室以 frame 的页框技术来做是有必要的。下例就是聊天室的主程序。

<html>
<head>
<title>聊天室</title>
</head>
<frameset rows="*,40" border=1>
<frame src="list.php" name=list scrolling=auto>
<frame src="post.php" name=post scrolling=no>
<noframes>
<body>
本聊天室需使用页框，您的浏览器无法使用
</body>
</noframes>
</frameset>
</html>

程序中以 frame 带出二支 PHP 程序，建议将它们放在同一目录之中，例如 /chatroom，以便日后维护。另外，为了 list.php 及 post.php 可以使用相同的变量，下例将共通的变路路径放在 env.inc 中，可以将它放在 /chatroom 或是 Web 服务器 (如 Apache) 的 PHP include 配置路径中。

<?php
// 文件名: env.inc
$tempdir="/tmp/";
$chatfile="/tmp/abc";
?>

聊天室的后端可以设计的很简单，单纯的使用文件来做，也可以弄个数据库，将聊天的内容丢入，若是真的很在意系统效率，或许可以考虑使用 UNIX 的行程通讯 IPC 了。

本节即将用户留言的内容放入文件中，在这儿的例子大部份都使用 UNIX/Linux 的外部指令。若系统无该指令 (或称程序)，请自行安装相关程序。

实际上将资料丢入文件中会比使用数据库还快，若还很在乎速度，可以在 UNIX 机器中装上 RAM Disk，再将文件的存取路径都设在该 RAM Disk 上，保证存取速度能满足严苛的要求。在有些以高速度搜寻引擎为号召的网站，甚至将整个数据库资料都放到 RAM Disk 中，马上让系统速度提高十倍百倍，而且 RAM 的价格和其它解决方案相比的话还算很便宜。若使用 Windows NT，那就没办法了，看微软什么时候提供，或者用 Third Party 的产品了。

有些用户可能对 UNIX 还不是很熟，在这儿先简介会用到的指令：

touch: 建立新文件，或修改旧文件的最后更新日期。

echo 加上两个大于符号: 将字符串显示转向到指定的地方。

tail: 显示文件最后数行的资料，默认值为十行，可使用减号加数字，修改要显示的行数。

下面为送出及处理留言字符串的程序，程序用到 env.inc 的文件。

<?php
// 文件名: post.php
require("env.inc");
if (($chatuser!="") and ($chattext!="")) {
$chatstr="<font color=8080ff>".date("h:i:s")."</font>-<font color=ff8080>".$chatuser."</font>: ".$chattext;
$cmdstr="echo \"".$chatstr."\" >> ".$chatfile;
if (!file_exists($chatfile)) passthru("touch ".$chatfile);
passthru($cmdstr);
}
?><html>
<body bgcolor=ffffff leftmargin=0 topmargin=0 marginheight=0 marginwidth=0>
<form action=<? echo $PHP_SELF; ?> method=post>
<table border=0 width=100%><tr>
<td align=right>匿称:</td>
<td><input type=text name=chatuser size=8 value="<? echo $chatuser; ?>"></td>
<td align=right>发言:</td>
<td><input type=text name=chattext size=30 maxlength=500></td>
<td><div align=right><input type=submit value="送出"></td>
</tr></table>
</form>
</body>
</html>

程序先检查是否有输入字符串，若无匿名及发言内容字符串则显示发言的表单 (Form)，如果资料则将字符串及当时时间存入文件中 (利用 UNIX 的转向指令)。当然，为了防止错误，先检查是否有文件可存文件，若没有则先 touch 该文件，例中的文件就是 /tmp/abc。

<html>
<meta http-equiv="Refresh" content="5; url=<? echo $PHP_SELF; ?>">
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
<body bgcolor=ffffff leftmargin=0 topmargin=0 marginheight=0 marginwidth=0>
<?
// 文件名: list.php
require("env.inc");

if (!file_exists($chatfile)) {
echo "尚未开张</body></html>";
exit;
}

$uniqfile=$tempdir.uniqid(rand());
$shellcmd="/usr/bin/tail -50 ".$chatfile. " > ".$uniqfile;
passthru($shellcmd);
$chatfilearray=file($uniqfile);
$j=count($chatfilearray);
for ($i=1; $i<=$j; $i++) {
echo $chatfilearray[$j-$i]."<br>\n";
}
unlink($uniqfile);
?>
</body>
</html>

上面的程序就是使用 Client Pull 的技术，每五秒就重新更新一次。同样地，它也 require 共用的 env.inc 文件，要改变其中的变量时，马上就可以让所有的程序用到，这对开发网站来说，是蛮重要的方法，可以将网页程序中都会出现的地方。例如 Copyright (C) 1996-2000 的字符串，放在一个文件上，到了新的一年，只要改一个文件，整个站都改了。

if (!file_exists($chatfile)) {
echo "尚未开张</body></html>";
exit;
}

$uniqfile=$tempdir.uniqid(rand());
$shellcmd="/usr/bin/tail -50 ".$chatfile. " > ".$uniqfile;
passthru($shellcmd);

程序先检查有没有用户发送聊天内容的文件 /tmp/abc，若没有就显示尚未开张，等用户送聊天内容。若已有聊天资料，就抓出最后五十笔，在在另外的文件中准备显示。

$chatfilearray=file($uniqfile);
$j=count($chatfilearray);
for ($i=1; $i<=$j; $i++) {
echo $chatfilearray[$j-$i]."<br>\n";
}
unlink($uniqfile);

将文件读入数组变量 $chatfilearray 中，并以最后的资料最先显示的方式送给浏览器端，当然可以使用对数组排序的方法，但确定一定时最后存入的资料在最后面，将它排序实在很浪费 CPU 时间，因此就从最后 echo 到最前面的资料。使用完成还要用 unlink() 指令，将临时文件杀掉。

这样就完成了最粗糙的聊天室系统，当然还有很多改进的空间，例如统计使用人数、调用个人....等，就要 Webmaster 再精雕细琢了。


留言板

大部份的网站，都会考虑到和用户之间的互动关系。这时，用留言板的功能，可让用户留下到此一游，或者是一些和网站的互动信息。

在设计上，可以很简单的只留下用户的短篇留言，也可以设计到依性质分门别类很复杂的 Web BBS 系统。当然，要如何打造一个属于自己网站的留言板，就端赖网站的性质以及 Web 网站开发人员的巧思了。

在这里介绍的范例，是简单的列示所有留言的内容。供用户可以一次看到多笔留言的资料。系统的后端存放留言是用 Oracle 7.x 版的数据库系统。范例中的数据库 (database) 名称为 WWW，连接的用户帐号为 user38、密码为 iam3849。要直接使用本例，必须先执行下面的 SQL 指令，建立 guestbook 的资料表格。

CREATE TABLE guestbook (
  serial    varchar2(255)  not null,
  ref       varchar2(255)  null,
  id        char(8)        not null,
  alias     varchar2(32)   not null,
  ip        varchar2(1024) null,
  msgdate   date           not null,
  email     varchar2(1024) null,
  msg       varchar2(2000) not null,
  flag      char(1)        default 1,
  primary key(serial)
);

上面的 SQL 各字段说明及详细资料见下表

序号 | 字段 | 名称 | 资料类型 | 资料长度 | 字段说明 | 限制 | Key
0 | 流水号 | serial | varchar2 | 255 |  | NN | PK
1 | 参照流水号 | ref | varchar2 | 255 | 暂保留。供回 覆留言功能用 |  |
2 | 帐号 | id | char | 8 | 用户帐号 | NN |
3 | 匿名 | alias | varchar2 | 32 | 显示的名字 | NN |
4 | 网址 | ip | varchar2 | 1024 | 上网 IP |  |
5 | 时间 | msgdate | date |  |  | NN |
6 | 电子邮件 | email | varchar2 | 1024 |  |  |
7 | 留言内容 | msg | varchar2 | 2000 |  | NN |
8 | 显示标志 | flag | char | 1 | 0: 不显示 1: 显示 (默认) |  |

在本节的留言板相关程序中，若加入了用户认证功能，则可以在 guestbook 资料表的帐号栏中留下用户的认证帐号，方便 Webmaster 日后找寻不当的发信者。在这儿先留下字段，让需要的读者们实习了。

要使用本节的程序，首先要先装好 Oracle 7.x 版，并确定 Web Server 端的 SQL*net 可以顺利连上 Oracle 数据库。之后还要在编译 PHP 时加入 --with-oracle=/home/oracle/product/7.3.2 的选项，当然改成其它的路径也没关系，只要该路径真的是 Oracle 的路径即可。有关 Oracle 装设及使用上的细节请参考相关书籍。

下面的程序是将用户的留言信息加到 guestbook 留言资料表中。若要配置用户认证功能，可在程序刚开始时检查，发留言者就可以确认身份，而读取留言就不必身份检查。这种配置可以防止不当发言，却又不会让留言功能只有少数人使用。

<?php
//---------------------------
// 新增留言程序 addmsg.php
// Author: Wilson Peng
// Copyright (C) 2000
//---------------------------
//
// 可自行在这儿加入身份检查功能
//
if (($alias!="") and ($msg!="")) {
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$serial=md5(uniqid(rand()));
$ref="";
$id=$PHP_AUTH_USER;
$ip=$REMOTE_ADDR;
$msg=base64_encode($msg);
$flag="1";
$query="INSERT into guestbook(serial, ref, id, alias, ip, msgdate, email, msg, flag) values('$serial', '$ref', '$id', '$alias', '$ip', sysdate, '$email', '$msg', '$flag')";

ora_parse($cursor, $query) or die;
ora_exec($cursor);

ora_close($cursor);
ora_logoff($handle);

Header("Location: ./index.php");
exit;

} else {
?>
<html>
<head>
<title>填写留言</title>
</head>
<body bgcolor=ffffff>
<form method=POST action="<? echo $PHP_SELF; ?>">
<table border=0 cellpadding=2 width=395>
<tr>
<td nowrap><font color=004080>代号小名</font></td>
<td width=20%><input type=text name=alias size=8></td>
<td nowrap><font color=004080>电子邮件</font></td>
<td width=50%><input type=text name=email size=18></td>
</tr>
<tr>
<td nowrapvalign=top><font color=004080>内容</font></td>
<td width=80% colspan=3><textarea rows=5 name=msg cols=33></textarea></td>
</tr>
<tr>
<td width=100% colspan=4 align=center>
<input type=submit value="送出留言">
<input type=reset value="擦掉留言">
</td>
</tr>
</table>
</form>
</body>
</html>
<?php
}
?>

上面的程序在执行时，先检查变量 alias 和 msg 是否有资料，若无资料则送出填写留言的表格到用户端，供用户填写留言。

若用户填好留言，按下 "送出留言" 的按钮后，则执行程序的前半部份。

程序大概分成五部份

  1. 配置 Oracle 需要的环境变量
  2. 连上 Oracle 数据库
  3. 整理资料，送入 Oracle 中
  4. 结束与 Oracle 的连接
  5. 结束程序，显示最新的留言资料

在配置 Oracle 环境的部份，用 PHP 的函数 putenv()，可配置操作系统层的环境变量。要使用中文要记得加入下面这行

putenv("NLS_LANG=american_taiwan.zht16big5");

之后就使用 Oracle 函数库的功能: ora_logon() 等等。详见 Oracle 数据库函数库。利用这个函数库，可以很轻易的操作 Oracle 数据库。

再来就是整理资料，以便置入 Oracle 数据库中

$serial=md5(uniqid(rand()));
$ref="";
$id=$PHP_AUTH_USER;
$ip=$REMOTE_ADDR;
$msg=base64_encode($msg);
$flag="1";
$query="INSERT into guestbook(serial, ref, id, alias, ip, msgdate, email, msg, flag) values('$serial', '$ref', '$id', '$alias', '$ip', sysdate, '$email', '$msg', '$flag')";

$serial 变量为独一无二的字符串，程序先随机数产生独特的字符串，再用 md5 编码，将字符串弄乱，形成类似哈稀处理后的无意义字符串。由于字符串长，又变得很乱，可防止用户，尤其是黑客或飞客利用序号来戳系统。

$ref 变量目前是无效的。$id 变量为用户认证用，若在程序开始处有加入用户认证的程序，则 $PHP_AUTH_USER 会变成用户的帐号，传入 $id 变量中。

至于用户写的字符串，为了防止数据库或处理时的复杂性甘脆将它用 BASE64 编码。可以让中文字的奇怪字符一字消失，当然这是锯箭法，不过对 Web 程序而言，执行快速、修改方便才是最重要的，实在没有必要再浪费精力去处理这些中文的冲码问题了。值得注意的是使用 BASE64 编码，会让字符串膨胀大约 1/3，若数据库的储存空间有限，可能就不适合用这个方法了，话又说回来，现在硬碟便宜，随便就是十几 GB 以上，应该不会考虑数据库空间有限的问题才对。

最后，将变量整理成 $query 字符串，供数据库执行 SQL 指令使用就可以了。

ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);
ora_logoff($handle);

要执行 Oracle 的 SQL 指令前，要先经过 parse 的步骤。若在前面加上 @ (如: @ora_prase();)，可以不让用户看到错误信息。在执行 query 指令后，就可以关闭与 Oracle 之间的连接了。

Header("Location: ./index.php");
exit;

这二行让浏览器重定向到 index.php。让用户看到他的新留言，就完成了留言的步骤。

之后来看看留言的内容显示程序。

<html>
<head>
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
<title>留言板</title>
</head>
<body bgcolor=ffffff>
<?php
//---------------------------
// 留言显示程序 index.php
// Author: Wilson Peng
// Copyright (C) 2000
//---------------------------

$WebmasterIPArray = array(
"10.0.1.30", // 管理人员甲的机器 IP
"10.0.2.28" // 管理人员乙的机器 IP
);

$WebmasterIP=false;
for ($i=0; $i<Count($WebmasterIPArray); $i++) {
if ($REMOTE_ADDR == $WebmasterIPArray[$i]) $WebmasterIP=true;
}

putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="SELECT serial, ref, id, alias, ip, TO_CHAR(msgdate, 'yyyy/mm/dd hh:mi:ss'), email, msg FROM guestbook where flag='1' order by msgdate desc";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
$i=0;
while(ora_fetch($cursor)) {
$guestbook[$i][0] = ora_getcolumn($cursor,0);
$guestbook[$i][1] = ora_getcolumn($cursor,1);
$guestbook[$i][2] = ora_getcolumn($cursor,2);
$guestbook[$i][3] = ora_getcolumn($cursor,3);
$guestbook[$i][4] = ora_getcolumn($cursor,4);
$guestbook[$i][5] = ora_getcolumn($cursor,5);
$guestbook[$i][6] = ora_getcolumn($cursor,6);
$guestbook[$i][7] = ora_getcolumn($cursor,7);
$i++;
}
ora_close($cursor);
ora_logoff($handle);

echo "<a href=addmsg.php>新增留言....</a><p>\n";

if ($QUERY_STRING!="") {
$page = $QUERY_STRING;
} else {
$page = 0;
}

$i=count($guestbook);
$msgnum=20; // 每页二十笔
$start = $page * $msgnum;
$end = $start + $msgnum;
if ($end > $i) $end=$i;
$totalpage=$i/$msgnum;

$pagestr="";
if ($page>0) $pagestr=$pagestr."<a href=index.php?".($page-1).">&lt;上页</a> - ";
$pagestr=$pagestr."[第 ";
for ($i=0; $i<$totalpage; $i++) {
if ($i!=$page) {
$pagestr = $pagestr."<a href=index.php?$i>".($i+1)."</a> ";
} else {
$pagestr = $pagestr.($i+1)." ";
}
}
$pagestr=$pagestr." 页] ";
if ($page<($totalpage-1)) $pagestr=$pagestr."- <a href=index.php?".($page+1).">下页&gt;</a> ";

$pagestr="<div align=center>$pagestr</div>";
echo "<p>".$pagestr."<hr><p>\n";

for ($i=$start; $i<$end; $i++) {
echo "<p><hr><p>\n";
echo "<p>\n<font color=e06060>".$guestbook[$i][5]."</font> &nbsp; ";
if ($guestbook[$i][6]!="") echo "<a href=mailto:".$guestbook[$i][6].">";
echo "<strong>".$guestbook[$i][3]."</strong>";
if ($guestbook[$i][6]!="") echo "</a>";
echo "<br>\n";
if ($WebmasterIP) echo "<a href=erase.php?".$guestbook[$i][0].">删除本篇!!</a> (".$guestbook[$i][2].") &nbsp; ";
echo "<font size=-1 color=c0c0c0>from: ".$guestbook[$i][4]."</font><p>\n";
$msg=base64_decode($guestbook[$i][7]);
$msg=nl2br($msg);
echo $msg;
echo "<p>\n";
}

echo "<p><hr><p>\n";
echo $pagestr;

?>
</body>
</html>

在显示留言的部份，考虑到留言内容若很多，加上网络慢的话，可能会让用户在线路慢的时候拖累整个数据库，因此，尽快的连上数据库，取得需要的资料后，马上关闭数据库，再慢慢送给用户，应是最好的对策。

程序分成四部份

  1. 初始化
  2. 取数据库中的资料
  3. 计算要显示的页数
  4. 送出资料

$WebmasterIPArray = array(
"10.0.1.30", // 管理人员甲的机器 IP
"10.0.2.28" // 管理人员乙的机器 IP
);

$WebmasterIP=false;
for ($i=0; $i<Count($WebmasterIPArray); $i++) {
if ($REMOTE_ADDR == $WebmasterIPArray[$i]) $WebmasterIP=true;
}
// 之后初始化 Oracle 程序略

显示程序和留言程序的初始化部份都差不多，但显示程序多加了一个功能，配置 Webmaster 的电脑。将 Webmaster 使用的 IP Address 加在 $WebmasterIPArray 数组变量中，可以在显示留言时，显示删除留言的字符串，方便处理不当的留言。

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="SELECT serial, ref, id, alias, ip, TO_CHAR(msgdate, 'yyyy/mm/dd hh:mi:ss'), email, msg FROM guestbook where flag='1' order by msgdate desc";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
$i=0;
while(ora_fetch($cursor)) {
$guestbook[$i][0] = ora_getcolumn($cursor,0);
$guestbook[$i][1] = ora_getcolumn($cursor,1);
$guestbook[$i][2] = ora_getcolumn($cursor,2);
$guestbook[$i][3] = ora_getcolumn($cursor,3);
$guestbook[$i][4] = ora_getcolumn($cursor,4);
$guestbook[$i][5] = ora_getcolumn($cursor,5);
$guestbook[$i][6] = ora_getcolumn($cursor,6);
$guestbook[$i][7] = ora_getcolumn($cursor,7);
$i++;
}
ora_close($cursor);
ora_logoff($handle);

在初始化后，就可以连上 Oracle 数据库，将留言的资料取出放在 $guestbook 数组中。取得资料后，就赶紧将数据库关闭，再来处理 $guestbook 数组的资料了。

if ($QUERY_STRING!="") {
$page = $QUERY_STRING;
} else {
$page = 0;
}

这一段程序判断是要显示第几页，默认值是显示第一页。要显示第三页的页面，需要使用 http://xxxxxx/index.php?2 的格式，也就是传入 $QUERY_STRING，余类推。之后的数行程序，都是用来处理显示的页数及笔数的资料。

$msgnum=20; // 每页二十笔

要改变每页的显示笔数，可以改 $msgnum 变量。程序的默认值为 20 笔。

for ($i=$start; $i<$end; $i++) {
echo "<p><hr><p>\n";
echo "<p>\n<font color=e06060>".$guestbook[$i][5]."</font> &nbsp; ";
if ($guestbook[$i][6]!="") echo "<a href=mailto:".$guestbook[$i][6].">";
echo "<strong>".$guestbook[$i][3]."</strong>";
if ($guestbook[$i][6]!="") echo "</a>";
echo "<br>\n";
if ($WebmasterIP) echo "<a href=erase.php?".$guestbook[$i][0].">删除本篇!!</a> (".$guestbook[$i][2].") &nbsp; ";
echo "<font size=-1 color=c0c0c0>from: ".$guestbook[$i][4]."</font><p>\n";
$msg=base64_decode($guestbook[$i][7]);
$msg=nl2br($msg);
echo $msg;
echo "<p>\n";
}

这一段程序就是真正显示留言资料给用户看的程序了。利用 for 循环，将 $guestbook 数组的资料按照配置的页数取出，显示给用户看。值得一提的是，若看留言的机器 IP 为 $WebmasterIPArray 变量数组中的一个元素的话，则会在留言者的匿称后显示 "删除本篇!!" 的字符串，供管理人员删除不当留言。

以下即为删除留言的程序。

<?php
//---------------------------
// 留言删除程序 erase.php
// Author: Wilson Peng
// Copyright (C) 2000
//---------------------------
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="UPDATE guestbook set flag='0' where serial='".$QUERY_STRING."'";
ora_parse($cursor, $query) or die;
ora_exec($cursor);

ora_close($cursor);
ora_logoff($handle);

Header("Location: ./index.php");
?>

其实这个程序很单纯，只要打开 Oracle 数据库，将要删除的序号那笔资料的 flag 字段设成 0 就可以了，不用将资料真的从数据库上移除。


意见信箱

当用户在参观网页时，有时想 Email 给 Webmaster 但是再执行 Email 程序总是不方使，用户在按下 mailto:abc@abc.abc.tw 还要花段时间打开自己这儿的 Outlook 岂不麻烦。这时，若是 Homepage 能提供写信的功能就太酷了。同时意见信箱还是以提醒或者要求用户一定要填入哪些资料，这对资料仓储而言，也是了解客户的最好方法。

整个意见信箱其实就像 Outlook 或者其它电子邮件软件，打开寄发新邮件的功能，不同的地方在于使用 Outlook 时，寄件人是固定的，而要填上收件人的地址；而网站上的意见信箱，收件人几乎都是 Webmaster，反而是要填上寄件人的电子邮件地址。当然另一个不同之处是 Outlook 处理寄信的步骤；而意见信箱是由 Web 服务器处理用户发送的信件。

在更进阶的设计后，甚至可以变成 Web Mail，像 HotMail 般，只要用浏览器就可以在任何地方用任何电脑收发信件。

当然，也可以做进阶的设计，将用户的意见储放在数据库中，留待日后整理成更有用的资料。不过这就不是这节要讨论的部份了。

在 UNIX 的系统中，大部份和电子邮件有关的问题都和 sendmail 有关，除非系统管理员较偏执，才会用其它的系统。因此，意见信箱的设计开发，也是使用 sendmail 来达成所需要的功能。而 WindowsNT 系统中，由于没有 sendmail 程序，需要另行符费购买，或使用其它的邮件派送软件，因此本节程序无法在 WindowsNT 系统执行。

程序的流程如下

  1. 送出填写意见的表格到用户的浏览器上。
  2. 用户填好后送出资料到服务器。
  3. 服务器将用户填的资料整理后，存入文件。
  4. 利用 UNIX 的管道指令及 sendmail 程序将意见送给系统管理人员。
  5. 服务器通知用户意见已送出。

以下就是完整的范例程序

<html>
<head>
<title>意见信箱</title>
</head>
<body>
<?php

$mailto="yourname@hahaha.com.tw";

if (($topic!="") and ($Email!="") and ($body!="")) {
$tmpfilename = tempnam("/tmp", "dm");
$fp = fopen($tmpfilename, "w");

fwrite($fp, "From: ".$Email."\n");
fwrite($fp, "Subject: ".$topic." <访客来信>\n\n");
fwrite($fp, $body."\n\n");
fwrite($fp, "送信人:".$sender."\n");
fwrite($fp, "发信IP:".$REMOTE_ADDR."\n");
fclose($fp);

$execstr="cat ".$tmpfilename." | /usr/lib/sendmail ".$mailto;
exec($execstr);

$execstr="echo $sender $REMOTE_HOST >> /var/log/mail.log";
exec($execstr);
echo "信件已送出！！本站工作人员尽快处理您的问题<p><br><br><br><br><br>";
} else {
?>
 <form action=<? echo($GLOBALS["PHP_SELF"]); ?> method=post>
<table border=0>
<tr><td>主题</td><td><input type=text size=20 name=topic></tr>
<tr><td>姓名</td><td><input type=text size=20 name=sender></tr>
<tr><td>Email</td><td><input type=text size=20 name=Email></tr>
<tr><td colspan=2>内容<br><textarea cols=26 rows=10 name=body></textarea></td></tr>
<tr><td colspan=2><div align=right><input type=submit value="送出"></td></tr>
</table>
</form>
<?
}
?>
</body>
</html>

程序在 PHP 处理解析时，先判断用户是否填入资料。若没有资料则送出意见表单给用户，如果资料则表示用户已输入相关的资料，则进行处理。

处理的原则是先将用户填写的资料写入临时文件中，但为了防止多用户同时填写意见时，会造成文件被覆盖，因此需要每次都有不同的临时文件，这个问题可以使用 tempnam() 函数来解决，用来建立独一无二的临时文件。 在文件名的问题处理完后，利用 PHP 提供的文件处理功能，将用户填写的资料写入方才建立的文件中。将文件关闭就初步完成。即使资料没有邮寄出去，系统仍能保存意见文件。值得注意的是，若存放在 /tmp 中，有些 UNIX 的系统 (如 SUN Solaris) 会在重新启动系统时遗失这些资料，而有些则不会 (如 Slackware Linux)，这方面可能要先规划好，要保存的话需要存在不会被清掉的目录下。

UNIX 中最强的功能就是管道，可以利用管道来处理寄信的步骤，如下

cat tmpfilename | /usr/lib/sendmail wilson@biglobe.net.tw

这个指令的意思为将文件送给管道彼端的 sendmail 程序，而 sendmail 将该文件寄给 wilson@biglobe.net.tw。因此可利用本管道指令将意见寄给 Webmaster 或是客服部门的人员。若要寄给多人，可利用 mailing list 或是多用几次寄信的管道指令。

在 PHP 程序中要使用 UNIX 的程序或者外部指令，可以使用 exec() 函数来做。寄完信后，通知用户已经在处理了，就完成了意见处理的初步工作。当然之后要如何处理，就不是 PHP 书中所能讨论的。

当然执行寄信的方式不只一种，可以利用 mail() 函数来寄信，亦可利用 UNIX 的网络 socket 来做，所谓戏法人人会变，巧妙各有不同。


广告轮播

网络广告，变成了 Internet 上的热门学问。而 468x60 更变成了广告人员绞尽脑汁的尺寸。

在处理广告时，若能直接使用浏览器将广告的 468x60 图文件送到处理广告的服务器中，相信是件很舒服的事，不用再开 FTP 程序，搞大半天只为了 upload。

这个问题，是所有 Web CGI 程序的痛，包括 ASP、Prel....等等，都需要再经过系统元件的增加才能达成。号称最强的 Web CGI 程序: PHP，在这方面的表现没有令人失望，甚至傲视其它的 CGI 工具。

File Upload 功能在 RFC 1867 文件有有详细的说明，是利用特殊的文件格式 (content-type) multipart/form-data。值得注意的是浏览器一定要用 Netscape 3.0 以上或 MS Internet Explorer 4.0 以上的版本才能将文件上传。

先看下面的 HTML 源代码

<form enctype="multipart/form-data" action="next.php" method=post>
您的大名: <input type=text name=user><br>
文件名称: <input name="myfile" type="file"><br>
<input type="submit" value="送出">
</form>

在 form 的标签中，要加入 enctype="multipart/form-data" 的字符串，表示用户输入的资料上有文件上传，同时 method 一定要用 POST 而不能用 GET。

在上面的码中，若用户姓名填入 Wilson Peng，并选 c:\myphoto.gif 的文件，在用户按下送出键后，浏览器则传送出下面的 POST 资料。

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="user"

Wilson Peng
--AaB03x
content-disposition: form-data; name="myfile"
Content-type: multipart/mixed, boundary=BbC04y

--BbC04y
Content-disposition: attachment; filename="myphoto.gif"
Content-type: image/gif
Content-Transfer-Encoding: binary

  ...myphoto.gif 内容略...
--BbC04y--
--AaB03x--

看到上面的资料中，boundary=AaB03x 即为分开不同字段资料的信息，其中的 AaB03x 编码方法，视浏览器的版本不同而异，通常是浏览器哈稀产生的。之后就可以看到用 --AaB03x 来隔开不同的字段。

以上面为例，处理 form 的 action 程序 next.php，会主动产生四个变量，见下表

变量名 | 说明
$myfile | 即上传的文件内容
$myfile_name | 上传文件在用户端的名称
$myfile_size | 上传文件的大小
$myfile_type | 上传文件的格式，如 "image/gif"

在 next.php 程序要做的最重要步骤，就是好好的使用这四个变量，否则程序一结束，用户上传的文件就消失了。因此，要先将 $myfile 复制到存放广告图的目录中

copy($banner,"/home1/biglobe3/ad/".$banner_name);

这行程序就是将文件存在 /home/htdocs/ad 的目录中，就上面的例子而言，就将文件存到 /home/htdocs/ad/myphoto.gif。重要的是，存放的目录不能是 Web Server 无法读到的目录，而应放在网站的 Homepage 所在目录中，才可以在网络上看到。

或许程序要更详细的处理，例如比对取得的文件大小与系统回报的是否相同....等等，就可以用 $myfile_size 变量了。

若在 form 中配置 input file 的名称改掉，则在 Upload 的变量也一起改，如

<input name="upfile" type="file">

则变量就改成 $upfile、$upfile_name、$upfile_size、与 $upfile_type。

因此，下面的例子就利用 File Upload 及 Oracle 7.x 后端数据库，将文件放在 Web Homepage 目录中，相关信息则存在 Oracle 中。当然，加上用户认证，让有帐号的用户才能上传图片，可避免刽客 (cracker) 等将不雅或不适当的广告上传。例中有关数据库的配置和 5.4 留言板的配置相同。

<html>
<head>
<?php
// adadd.php
if (($banner=="") and ($url=="")) {
?>
<title>新增广告</title>
</head>
<body>
加权值数字愈大，图片出现的机率就愈高，默认值为 1。
<FORM ENCTYPE="multipart/form-data" ACTION="adadd.php" METHOD=POST>
<table border=0>
<tr><td align=right>广告 Banner: </td><td><input name=banner TYPE="file"></td></tr>
<tr><td align=right>广告网址 URL: </td><td><input name=url type=text size=30></td></tr>
<tr><td align=right>辅助字符串 ALT: </td><td><input name=alt type=text size=30></td></tr>
<tr><td align=right>广告说明: </td><td><input name=descript type=text size=30></td></tr>
<tr><td align=right>显示加权: </td><td><input name=priority type=text size=5 value=1></td></tr>
<tr><td colspan=2 align=right><input type="submit" VALUE="确定"></td></tr>
</table>
</FORM>
<?
} else {
if (file_exists("/home/htdocs/ad/".$banner_name)) {
CommonHeader("文件 ".$banner_name." 已存在");
echo "<p><br><br>广告文件已经存在\n<p><br><br></body></html>";
exit;
};

copy($banner,"/home1/biglobe3/ad/".$banner_name);

putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="insert into ad(url, banner, alt, descript, priority) values('$url', '$banner_name', '$alt', '$descript', $priority)";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);
ora_logoff($handle);

echo "<title>广告新增完成</title>";
echo "</head>";
echo "<body>";
echo "<a href=".$url."><img src=/ad/".$banner_name." alt=\"".$alt."\" border=0></a><p>";
echo "<ul type=disc>";
echo "<li>广告网址: ".$url;
echo "<li>辅助字符串: ".$alt;
echo "<li>广告说明: ".$descript;
echo "<li>显示加权: ".$priority;
echo "</ul>";
}

?>
</body>
</html>

当然要使用上面的程序之前别忘了先增加 ad 资料表，SQL 及字段如下

CREATE TABLE ad (
  url       varchar2(1024) not null,
  banner    varchar2(1024) not null,
  alt       varchar2(255)  null,
  descript  varchar2(255)  null,
  priority  number(4) not null default 1
);

序号 | 字段 | 名称 | 资料类型 | 资料长度 | 字段说明
0 | 广告网址 | url | varchar2 | 1024 |
1 | 图片路径 | banner | varchar2 | 1024 |
2 | 字符串显示 | alt | varchar2 | 255 |
3 | 广告说明 | descript | varchar2 | 255 |
4 | 显示加权 | priority | number | 4 | 1 为默认值，0 表停用

值得一提的是在这加入了加权的功能，若一个广告要提升曝光率，则可以将显示加权的字段数字加大，例如 5，它的出现机率就会比只设为 1 的高五倍。

<?php
// ad.php
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");

$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);

$query="SELECT url, banner, alt, priority FROM ad where priority > 0";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
$i=$pricount=0;
while(ora_fetch($cursor)) {
$ad[$i][0] = ora_getcolumn($cursor,0);
$ad[$i][1] = ora_getcolumn($cursor,1);
$ad[$i][2] = ora_getcolumn($cursor,2);
$ad[$i][3] = ora_getcolumn($cursor,3);
$pricount += $ad[$i][3];
$i++;
};

ora_close($cursor);
ora_logoff($handle);

srand((double)microtime()*1000000);
$pri = rand(1,$pricount);
$pricount=0;
for($i=0; $i<count($ad); $i++) {
$pricount += $ad[$i][3];
if ($pri <= $pricount) {
$ad1[]="<a href=".$ad[$i][0]." target=new><img src=/ad/".$ad[$i][1]." width=468 height=60 border=0 alt=\"".$ad[$i][2]."\"></a>";
}
}
echo $ad1[0];

?>

上面的程序为公用的广告显示程序，其中的 $pricount 变量为所有广告 priority 加起来的和。程序先将所有的广告信息读到数组变量 $ad 中，随即关上数据库。再依时间取随机数种子，之后再从 1 到 $pricount 间随机取一个数字。

网页中要用广告程序，只要在需要广告的地方加上 <? include("ad.php"); ?> 就可以了，当然 Include 的路径 (在 httpd.conf 中) 要先设好才行。

上面的程序还有改进空间，可以加入广告的 Click Log 功能，或是显示的 Log 功能，改动显示加权的程序....等等，就不做范例了，毕竟在这儿是要介绍 PHP 的实际应用及程序开发，而不是套件开发。真的需要现成的广告套件，不妨到 http://www.phpwizard.net/phpAds，这是一套用 PHP 开发出来的广告程序。


PHP 函数索引

共有 967 个函数

  • Abs: 取得绝对值。
  • Acos: 取得反余弦值。
  • ada_afetch: 取得数据库的返回列。
  • ada_autocommit: 开关自动改动功能。
  • ada_close: 关闭 Adabas D 链接。
  • ada_commit: 改动 Adabas D 数据库。
  • ada_connect: 链接至 Adabas D 数据库。
  • ada_exec: 执行 SQL 指令。
  • ada_fetchrow: 取得返回一列。
  • ada_fieldname: 取得字段名称。
  • ada_fieldtype: 取得字段资料类型。
  • ada_freeresult: 释出返回资料的内存。
  • ada_numfields: 取得字段数目。
  • ada_numrows: 取得返回列数目。
  • ada_result: 取得返回资料。
  • ada_resultall: 返回 HTML 表格资料。
  • ada_rollback: 撤消当前交易。
  • AddSlashes: 字符串加入斜线。
  • apache_lookup_uri: 获得所有的 URI 相关信息。
  • apache_note: 获得及配置apache服务器的请求纪录。
  • array: 建立一个新的数组。
  • array_walk: 让使用者自订函数能处理数组中的每一个元素。
  • arsort: 将数组的值由大到小排序。
  • Asin: 取得反正弦值。
  • asort: 将数组的值由小到大排序。
  • aspell_check: 检查一个单字。
  • aspell_check-raw: 检查一个单字，即使拼错也不改变或修正。
  • aspell_new: 载入一个新的字典。
  • aspell_suggest: 检查一个单字，并提供拼写建议。
  • Atan: 取得反正切值。
  • Atan2: 计算二数的反正切值。
  • base64_decode: 将 BASE64 编码字符串解码。
  • base64_encode: 将字符串以 BASE64 编码。
  • basename: 返回不含路径的文件字符串。
  • base_convert: 转换数字的进位方式。
  • bcadd: 将二个高精确度数字相加。
  • bccomp: 比较二个高精确度数字。
  • bcdiv: 将二个高精确度数字相除。
  • bcmod: 取得高精确度数字的余数。
  • bcmul: 将二个高精确度数字相乘。
  • bcpow: 求一高精确度数字次方值。
  • bcscale: 配置程序中所有 BC 函数库的默认小数点位数。
  • bcsqrt: 求一高精确度数字的平方根。
  • bcsub: 将二个高精确度数字相减。
  • bin2hex: 二进位转成十六进位。
  • BinDec: 二进位转成十进位。
  • Ceil: 计算大于指定数的最小整数。
  • chdir: 改变目录。
  • checkdate: 验证日期的正确性。
  • checkdnsrr: 检查指定网址的 DNS 记录。
  • chgrp: 改变文件所属的群组。
  • chmod: 改变文件的属性。
  • Chop: 去除连续空白。
  • chown: 改变文件的拥有者。
  • Chr: 返回序数值的字符。
  • chunk_split: 将字符串分成小段。
  • clearstatcache: 清除文件状态快取。
  • closedir: 关闭目录 handle。
  • closelog: 关闭系统纪录。
  • connection_aborted: 若链接中断则返回 true。
  • connection_status: 取得连接状态。
  • connection_timeout: 若超过 PHP 程序执行时间则返回 true。
  • convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
  • copy: 复制文件。
  • Cos: 余弦计算。
  • count: 计算变量或数组中的元素个数。
  • crypt: 将字符串用 DES 编码加密。
  • current: 返回数组中目前的元素。
  • date: 将服务器的时间格式化。
  • dbase_add_record: 加入资料到 dBase 资料表。
  • dbase_close: 关闭 dBase 资料表。
  • dbase_create: 建立 dBase 资料表。
  • dbase_delete_record: 删除 dBase 资料表的资料。
  • dbase_get_record: 取得 dBase 资料表的资料。
  • dbase_numfields: 取得 dBase 资料表的字段数。
  • dbase_numrecords: 取得 dBase 资料表的列数。
  • dbase_open: 打开 dBase 资料表。
  • dbase_pack: 清理 dBase 资料表。
  • dba_close: 关闭数据库。
  • dba_delete: 删除指定资料。
  • dba_exists: 检查键是否存在。
  • dba_fetch: 取回指定资料。
  • dba_firstkey: 取回首笔键值。
  • dba_insert: 加入资料。
  • dba_nextkey: 取回下笔键值。
  • dba_open: 打开数据库链接。
  • dba_optimize: 最佳化数据库。
  • dba_popen: 打开并保持数据库链接。
  • dba_replace: 改动或加入资料。
  • dba_sync: 数据库同步化。
  • dblist: 取得 DBM 的信息。
  • dbmclose: 关闭 DBM 数据库。
  • dbmdelete: 删除指定资料。
  • dbmexists: 检查键是否存在。
  • dbmfetch: 取回指定资料。
  • dbmfirstkey: 取回首笔键名。
  • dbminsert: 加入资料。
  • dbmnextkey: 取回下笔键值。
  • dbmopen: 打开 DBM 数据库链接。
  • dbmreplace: 改动或加入资料。
  • debugger_off: 关闭内建的 PHP 除错器。
  • debugger_on: 使用内建的 PHP 除错器。
  • DecBin: 十进位转二进位。
  • DecHex: 十进位转十六进位。
  • DecOct: 十进位转八进位。
  • delete: 无用的项目。
  • die: 输出信息并中断 PHP 程序。
  • dir: 目录类别类。
  • dirname: 取得路径中的目录名。
  • diskfreespace: 取得目录所在的剩余可用空间。
  • dl: 载入 PHP 扩充模块。
  • doubleval: 变量转成倍浮点数类型。
  • each: 返回数组中下一个元素的索引及值。
  • easter_date: 计算复活节日期。
  • easter_days: 计算复活节与三月廿一日之间日期数。
  • echo: 输出字符串。
  • empty: 判断变量是否已配置。
  • end: 将数组的内部指针指到最后的元素。
  • ereg: 字符串比对解析。
  • eregi: 字符串比对解析，与大小写无关。
  • eregi_replace: 字符串比对解析并取代，与大小写无关。
  • ereg_replace: 字符串比对解析并取代。
  • error_log: 送出一个错误信息。
  • error_reporting: 配置错误信息回报的等级。
  • escapeshellcmd: 除去字符串中的特殊符号。
  • eval: 将值代入字符串之中。
  • exec: 执行外部程序。
  • exit: 结束 PHP 程序。
  • Exp: 自然对数 e 的次方值。
  • explode: 切开字符串。
  • extract: 汇入数组到符号表。
  • fclose: 关闭已打开的文件。
  • FDF_close: 关闭 FDF 文件。
  • FDF_create: 建立新的 FDF 文件。
  • FDF_get_file: 取得 /F 键的值。
  • FDF_get_status: 取得 /STATUS 键的值。
  • FDF_get_value: 取得字段的值。
  • FDF_next_field_name: 下一字段的名称。
  • FDF_open: 打开 FDF 文件。
  • FDF_save: 将 FDF 文件存文件。
  • FDF_set_ap: 配置显示字段。
  • FDF_set_file: 配置 /F 键。
  • FDF_set_status: 配置 /STATUS 键。
  • FDF_set_value: 配置字段的值。
  • feof: 测试文件指针是否指到文件尾。
  • fgetc: 取得文件指针所指的字符。
  • fgetcsv: 取得文件指针所指行，并解析 CSV 字段。
  • fgets: 取得文件指针所指的行。
  • fgetss: 取得文件指针所指的行，并去掉 HTML 语言标记。
  • file: 将文件全部读入数组变量中。
  • fileatime: 取得文件最后的存取时间。
  • filectime: 取得文件最后的改变时间。
  • filegroup: 取得文件所属的群组。
  • fileinode: 取得文件的 inode 值。
  • filemtime: 取得文件最后的修改时间。
  • fileowner: 取得文件的拥有者。
  • fileperms: 取得文件的权限配置。
  • filepro: 读取 FilePro Map 文件。
  • filepro_fieldcount: 取得字段数目。
  • filepro_fieldname: 取得字段名称。
  • filepro_fieldtype: 取得字段类型。
  • filepro_fieldwidth: 取得字段宽度。
  • filepro_retrieve: 取得指定储存格资料。
  • filepro_rowcount: 取得列数目。
  • filesize: 获得文件的大小。
  • filetype: 获得文件的类型。
  • file_exists: 检查文件是否存在。
  • flock: 锁住文件。
  • Floor: 计算小于指定数的最大整数。
  • flush: 清出输出缓冲区。
  • fopen: 打开文件或者 URL。
  • fpassthru: 输出所有剩余资料。
  • fputs: 写到文件指针。
  • fread: 位组的方式读取文件。
  • FrenchToJD: 将法国共和历法转换成为凯撒日计数。
  • fseek: 移动文件指针。
  • fsockopen: 打开网络的 Socket 链接。
  • ftell: 取得文件读写指针位置。
  • ftp_cdup: 回上层目录。
  • ftp_chdir: 改变路径。
  • ftp_connect: 打开 FTP 链接。
  • ftp_delete: 将文件删除。
  • ftp_fget: 下载文件，并存在已开的文件中。
  • ftp_fput: 上传已打开文件。
  • ftp_get: 下载文件。
  • ftp_login: 登入 FTP 服务器。
  • ftp_mdtm: 获得指定文件的最后修改时间。
  • ftp_mkdir: 建新目录。
  • ftp_nlist: 列出指定目录中所有文件。
  • ftp_pasv: 切换主被动传输模式。
  • ftp_put: 上传文件。
  • ftp_pwd: 取得目前所在路径。
  • ftp_quit: 关闭 FTP 连接。
  • ftp_rawlist: 详细列出指定目录中所有文件。
  • ftp_rename: 将文件改名。
  • ftp_rmdir: 删除目录。
  • ftp_size: 获得指定文件的大小。
  • ftp_systype: 显示服务器系统。
  • function_exists: 检查函数是否已定义。
  • fwrite: 二进位位方式写入文件。
  • getallheaders: 获得所有 HTTP 变量值。
  • getdate: 获得时间及日期信息。
  • getenv: 取得系统的环境变量
  • gethostbyaddr: 返回机器名称。
  • gethostbyname: 返回 IP 网址。
  • gethostbynamel: 返回机器名称的所有 IP。
  • GetImageSize: 取得图片的长宽。
  • getlastmod: 返回该网页的最后修改时间。
  • getmxrr: 取得指定网址 DNS 记录之 MX 字段。
  • getmyinode: 返回该网页的 inode 值。
  • getmypid: 返回 PHP 的行程代号。
  • getmyuid: 返回 PHP 的使用者代码。
  • getrandmax: 随机数的最大值。
  • getrusage: 返回系统资源使用率。
  • gettimeofday: 取得目前时间。
  • gettype: 取得变量的类型。
  • get_cfg_var: 取得 PHP 的配置选项值。
  • get_current_user: 取得 PHP 行程的拥有者名称。
  • get_magic_quotes_gpc: 取得 PHP 环境变量 magic_quotes_gpc 的值。
  • get_magic_quotes_runtime: 取得 PHP 环境变量 magic_quotes_runtime 的值。
  • get_meta_tags: 抽出文件所有 meta 标记的资料。
  • gmdate: 取得目前与 GMT 差后的时间。
  • gmmktime: 取得 UNIX 时间戳记的格林威治时间。
  • GregorianToJD: 将格里高里历法转换成为凯撒日计数。
  • gzclose: 关闭压缩文件。
  • gzeof: 判断是否在压缩文件尾。
  • gzfile: 读压缩文件到数组中。
  • gzgetc: 读压缩文件中的字符。
  • gzgets: 读压缩文件中的字符串。
  • gzgetss: 读压缩文件中的字符串，并去掉 HTML 指令。
  • gzopen: 打开压缩文件。
  • gzpassthru: 解压缩指针后全部资料。
  • gzputs: 资料写入压缩文件。
  • gzread: 压缩文件读出指定长度字符串。
  • gzrewind: 重设压缩文件指针。
  • gzseek: 设压缩文件指针至指定处。
  • gztell: 取得压缩文件指针处。
  • gzwrite: 资料写入压缩文件。
  • header: 送出 HTTP 协议的标头到浏览器
  • HexDec: 十六进位转十进位。
  • htmlentities: 将所有的字符都转成 HTML 字符串。
  • htmlspecialchars: 将特殊字符转成 HTML 格式。
  • hw_Children: 取得子类代码。
  • hw_ChildrenObj: 取得子类的类记录。
  • hw_Close: 关闭 Hyperwave 连接。
  • hw_Connect: 连上 Hyperwave 服务器。
  • hw_Cp: 复制类。
  • hw_Deleteobject: 删除类。
  • hw_DocByAnchor: 取得指定锚的文件类代码。
  • hw_DocByAnchorObj: 取得指定锚的文件类。
  • hw_DocumentAttributes: 取得指定文件类属性。
  • hw_DocumentBodyTag: 取得指定文件类的文件主体标记。
  • hw_DocumentContent: 取得指定文件类的内容。
  • hw_DocumentSetContent: 重设指定文件类的内容。
  • hw_DocumentSize: 取得文件大小。
  • hw_EditText: 改动文字档宁。
  • hw_Error: 取得错误代码。
  • hw_ErrorMsg: 取得错误信息。
  • hw_Free_Document: 释放文件使用的内存。
  • hw_GetAnchors: 取得文件的链接锚。
  • hw_GetAnchorsObj: 取得文件的链接锚记录。
  • hw_GetAndLock: 取得并锁住类。
  • hw_GetChildColl: 取得子类们的 ID。
  • hw_GetChildCollObj: 取得子类们的资料。
  • hw_GetChildDocColl: 取得全部子文件聚集。
  • hw_GetChildDocCollObj: 取得全部子文件聚集记录。
  • hw_GetObject: 取得类。
  • hw_GetObjectByQuery: 搜寻类。
  • hw_GetObjectByQueryColl: 搜寻聚集类。
  • hw_GetObjectByQueryCollObj: 搜寻聚集类。
  • hw_GetObjectByQueryObj: 搜寻类。
  • hw_GetParents: 取得父类的 ID。
  • hw_GetParentsObj: 取得父类的资料。
  • hw_GetRemote: 取得远端文件。
  • hw_GetRemoteChildren: 取得远端的子文件。
  • hw_GetSrcByDestObj: 取得指定目的的文件内容。
  • hw_GetText: 取得纯文字档宁。
  • hw_GetUsername: 目前使用者名字。
  • hw_Identify: 使用者身份确认。
  • hw_InCollections: 检查类聚集。
  • hw_Info: 连接信息。
  • hw_InsColl: 插入聚集。
  • hw_InsDoc: 插入文件。
  • hw_InsertDocument: 上传文件。
  • hw_InsertObject: 插入类记录。
  • hw_Modifyobject: 修改类记录。
  • hw_Mv: 移动类。
  • hw_New_Document: 建立新文件。
  • hw_Objrec2Array: 类记录转为数组。
  • hw_OutputDocument: 输出文件。
  • hw_pConnect: 连上 Hyperwave 服务器。
  • hw_PipeDocument: 取得文件。
  • hw_Root: 取得根类代码。
  • hw_Unlock: 取消锁定。
  • hw_Who: 列出目前使用者。
  • ibase_bind: 链接 PHP 变量到 InterBase 参数。
  • ibase_close: 关闭 InterBase 服务器连接。
  • ibase_connect: 打开 InterBase 服务器连接。
  • ibase_execute: 执行 SQL 的指令部分。
  • ibase_fetch_row: 返回单列的各字段。
  • ibase_free_query: 释放查询指令占用内存。
  • ibase_free_result: 释放返回占用内存。
  • ibase_pconnect: 保持 InterBase 服务器连接。
  • ibase_prepare: 分析 SQL 语法。
  • ibase_query: 送出一个 query 字符串。
  • ibase_timefmt: 配置时间格式。
  • ifxus_close_slob: 删除 slob 类。
  • ifxus_create_slob: 建立 slob 类。
  • ifxus_open_slob: 打开 slob 类。
  • ifxus_read_slob: 读取指定数目的 slob 类。
  • ifxus_seek_slob: 配置目前文件或找寻位置。
  • ifxus_tell_slob: 返回目前文件或找寻位置。
  • ifxus_write_slob: 将字符串写入 slob 类中。
  • ifx_affected_rows: 得到 Informix 最后操作影响的列数目。
  • ifx_blobinfile_mode: 配置长位类模式。
  • ifx_byteasvarchar: 配置位组模式默认值。
  • ifx_close: 关闭 Informix 服务器连接。
  • ifx_connect: 打开 Informix 服务器连接。
  • ifx_copy_blob: 复制长位类。
  • ifx_create_blob: 建立长位类。
  • ifx_create_char: 建立字符类。
  • ifx_do: 执行已准备 query 字符串。
  • ifx_error: 取得 Informix 最后的错误。
  • ifx_errormsg: 取得 Informix 最后错误信息。
  • ifx_fetch_row: 返回单列的各字段。
  • ifx_fieldproperties: 列出 Informix 的 SQL 字段属性。
  • ifx_fieldtypes: 列出 Informix 的 SQL 字段。
  • ifx_free_blob: 删除长位类。
  • ifx_free_char: 删除字符类。
  • ifx_free_result: 释放返回占用内存。
  • ifx_free_slob: 删除 slob 类。
  • ifx_getsqlca: 取得 query 后的 sqlca 信息。
  • ifx_get_blob: 取得长位类。
  • ifx_get_char: 取得字符类。
  • ifx_htmltbl_result: 将 query 返回资料转成 HTML 表格。
  • ifx_nullformat: 配置空字符模式默认值。
  • ifx_num_fields: 取得返回字段的数目。
  • ifx_num_rows: 取得返回列的数目。
  • ifx_pconnect: 打开 Informix 服务器持续连接。
  • ifx_prepare: 准备 query 字符串。
  • ifx_query: 送出一个 query 字符串。
  • ifx_textasvarchar: 配置文字模式默认值。
  • ifx_update_blob: 更改长位类。
  • ifx_update_char: 更改字符类。
  • ignore_user_abort: 连接中断后程序是否执行。
  • ImageArc: 画弧线。
  • ImageChar: 写出横向字符。
  • ImageCharUp: 写出直式字符。
  • ImageColorAllocate: 匹配颜色。
  • ImageColorAt: 取得图中指定点颜色的索引值。
  • ImageColorClosest: 计算色表中与指定颜色最接近者。
  • ImageColorExact: 计算色表上指定颜色索引值。
  • ImageColorResolve: 计算色表上指定或最接近颜色的索引值。
  • ImageColorSet: 配置色表上指定索引的颜色。
  • ImageColorsForIndex: 取得色表上指定索引的颜色。
  • ImageColorsTotal: 计算图的颜色数。
  • ImageColorTransparent: 指定透明背景色。
  • ImageCopyResized: 复制新图并调整大小。
  • ImageCreate: 建立新图。
  • ImageCreateFromGIF: 取出 GIF 图型。
  • ImageCreateFromPNG: 取出 PNG 图型。
  • ImageDashedLine: 绘虚线。
  • ImageDestroy: 结束图形。
  • ImageFill: 图形着色。
  • ImageFilledPolygon: 多边形区域着色。
  • ImageFilledRectangle: 矩形区域着色。
  • ImageFillToBorder: 指定颜色区域内着色。
  • ImageFontHeight: 取得字型的高度。
  • ImageFontWidth: 取得字型的宽度。
  • ImageGIF: 建立 GIF 图型。
  • ImageInterlace: 使用交错式显示与否。
  • ImageLine: 绘实线。
  • ImageLoadFont: 载入点阵字型。
  • ImagePNG: 建立 PNG 图型。
  • ImagePolygon: 绘多边形。
  • ImagePSBBox: 计算 PostScript 文字所占区域。
  • ImagePSEncodeFont: PostScript 字型转成向量字。
  • ImagePSFreeFont: 卸下 PostScript 字型。
  • ImagePSLoadFont: 载入 PostScript 字型。
  • ImagePSText: 写 PostScript 文字到图中。
  • ImageRectangle: 绘矩形。
  • ImageSetPixel: 绘点。
  • ImageString: 绘横式字符串。
  • ImageStringUp: 绘直式字符串。
  • ImageSX: 取得图片的宽度。
  • ImageSY: 取得图片的高度。
  • ImageTTFBBox: 计算 TTF 文字所占区域。
  • ImageTTFText: 写 TTF 文字到图中。
  • imap_8bit: 将八位转成 qp 编码。
  • imap_alerts: 所有的警告信息。
  • imap_append: 附加字符串到指定的邮箱中。
  • imap_base64: 解 BASE64 编码。
  • imap_binary: 将八位转成 base64 编码。
  • imap_body: 读信的内文。
  • imap_check: 返回邮箱信息。
  • imap_clearflag_full: 清除信件标志。
  • imap_close: 关闭 IMAP 链接。
  • imap_createmailbox: 建立新的信箱。
  • imap_delete: 标记欲删除邮件。
  • imap_deletemailbox: 删除既有信箱。
  • imap_errors: 所有的错误信息。
  • imap_expunge: 删除已标记的邮件。
  • imap_fetchbody: 从信件内文取出指定部分。
  • imap_fetchheader: 取得原始标头。
  • imap_fetchstructure: 获取某信件的结构信息。
  • imap_getmailboxes: 取得全部信件详细信息。
  • imap_getsubscribed: 列出所有订阅邮箱。
  • imap_header: 获取某信件的标头信息。
  • imap_headers: 获取全部信件的标头信息。
  • imap_last_error: 最后的错误信息。
  • imap_listmailbox: 获取邮箱列示。
  • imap_listsubscribed: 获取订阅邮箱列示。
  • imap_mailboxmsginfo: 取得目前邮箱的信息。
  • imap_mail_copy: 复制指定信件到它处邮箱。
  • imap_mail_move: 移动指定信件到它处邮箱。
  • imap_msgno: 列出 UID 的连续信件。
  • imap_num_msg: 取得信件数。
  • imap_num_recent: 取得新进信件数。
  • imap_open: 打开 IMAP 链接。
  • imap_ping: 检查 IMAP 是否连接。
  • imap_qprint: 将 qp 编码转成八位。
  • imap_renamemailbox: 更改邮箱名字。
  • imap_reopen: 重开 IMAP 链接。
  • imap_rfc822_parse_adrlist: 解析电子邮件位址。
  • imap_rfc822_write_address: 电子邮件位址标准化。
  • imap_scanmailbox: 寻找信件有无特定字符串。
  • imap_search: 搜寻指定标准的信件。
  • imap_setflag_full: 配置信件标志。
  • imap_sort: 将信件标头排序。
  • imap_status: 目前的状态信息。
  • imap_subscribe: 订阅邮箱。
  • imap_uid: 取得信件 UID。
  • imap_undelete: 取消删除邮件标记。
  • imap_unsubscribe: 取消订阅邮箱。
  • implode: 将数组变成字符串。
  • intval: 变量转成整数类型。
  • iptcparse: 使用 IPTC 模块解析位资料。
  • isset: 判断变量是否已配置。
  • is_array: 判断变量类型是否为数组类型。
  • is_dir: 测试文件是否为目录。
  • is_double: 判断变量类型是否为倍浮点数类型。
  • is_executable: 测试文件是否为可执行文件。
  • is_file: 测试文件是否为正常文件。
  • is_float: 判断变量类型是否为浮点数类型。
  • is_int: 判断变量类型是否为整数类型。
  • is_integer: 判断变量类型是否为长整数类型。
  • is_link: 测试文件是否为链接文件。
  • is_long: 判断变量类型是否为长整数类型。
  • is_object: 判断变量类型是否为类类型。
  • is_readable: 测试文件是否可读取。
  • is_real: 判断变量类型是否为实数类型。
  • is_string: 判断变量类型是否为字符串类型。
  • is_writeable: 测试文件是否可写入。
  • JDDayOfWeek: 返回日期在周几。
  • JDMonthName: 返回月份名。
  • JDToFrench: 将凯撒日计数转换成为法国共和历法。
  • JDToGregorian: 将凯撒日计数 (Julian Day Count) 转换成为格里高里历法 (Gregorian date)。
  • JDToJewish: 将凯撒日计数转换成为犹太历法。
  • JDToJulian: 将凯撒日计数转换成为凯撒历法。
  • JewishToJD: 将犹太历法转换成为凯撒日计数。
  • join: 将数组变成字符串。
  • JulianToJD: 将凯撒历法转换成为凯撒日计数。
  • key: 取得数组中的索引资料。
  • ksort: 将数组的元素依索引排序。
  • ldap_add: 增加 LDAP 名录的条目。
  • ldap_bind: 系住 LDAP 目录。
  • ldap_close: 结束 LDAP 链接。
  • ldap_connect: 连上 LDAP 服务器。
  • ldap_count_entries: 搜寻结果的数目。
  • ldap_delete: 删除指定资源。
  • ldap_dn2ufn: 将 dn 转成易读的名字。
  • ldap_explode_dn: 切开 dn 的字段。
  • ldap_first_attribute: 取得第一笔资源的属性。
  • ldap_first_entry: 取得第一笔结果代号。
  • ldap_free_result: 释放返回资料内存。
  • ldap_get_attributes: 取得返回资料的属性。
  • ldap_get_dn: 取得 DN 值。
  • ldap_get_entries: 取得全部返回资料。
  • ldap_get_values: 取得全部返回值。
  • ldap_list: 列出简表。
  • ldap_modify: 改变 LDAP 名录的属性。
  • ldap_mod_add: 增加 LDAP 名录的属性。
  • ldap_mod_del: 删除 LDAP 名录的属性。
  • ldap_mod_replace: 新的 LDAP 名录取代旧属性。
  • ldap_next_attribute: 取得返回资料的下笔属性。
  • ldap_next_entry: 取得下一笔结果代号。
  • ldap_read: 取得目前的资料属性。
  • ldap_search: 列出树状简表。
  • ldap_unbind: 结束 LDAP 链接。
  • leak: 泄出内存。
  • link: 建立硬式链接。
  • linkinfo: 取得链接信息。
  • list: 列出数组中元素的值。
  • Log: 自然对数值。
  • Log10: 10 基底的对数值。
  • lstat: 取得链接文件相关信息。
  • ltrim: 去除连续空白。
  • mail: 寄出电子邮件。
  • max: 取得最大值。
  • mcrypt_cbc: 使用 CBC 将资料加/解密。
  • mcrypt_cfb: 使用 CFB 将资料加/解密。
  • mcrypt_create_iv: 从随机源将向量初始化。
  • mcrypt_ecb: 使用 ECB 将资料加/解密。
  • mcrypt_get_block_size: 取得编码方式的区块大小。
  • mcrypt_get_cipher_name: 取得编码方式的名称。
  • mcrypt_get_key_size: 取得编码钥匙大小。
  • mcrypt_ofb: 使用 OFB 将资料加/解密。
  • md5: 计算字符串的 MD5 哈稀。
  • mhash: 计算哈稀值。
  • mhash_count: 取得哈稀 ID 的最大值。
  • mhash_get_block_size: 取得哈稀方式的区块大小。
  • mhash_get_hash_name: 取得哈稀演算法名称。
  • microtime: 取得目前时间的 UNIX 时间戳记的百万分之一秒值。
  • min: 取得最小值。
  • mkdir: 建立目录。
  • mktime: 取得 UNIX 时间戳记。
  • msql: 送出 query 字符串。
  • msql_affected_rows: 得到 mSQL 最后操作影响的列数目。
  • msql_close: 关闭 mSQL 数据库连接。
  • msql_connect: 打开 mSQL 数据库连接。
  • msql_createdb: 建立一个新的 mSQL 数据库。
  • msql_create_db: 建立一个新的 mSQL 数据库。
  • msql_data_seek: 移动内部返回指针。
  • msql_dbname: 取得目前所在数据库名称。
  • msql_dropdb: 删除指定的 mSQL 数据库。
  • msql_drop_db: 删除指定的 mSQL 数据库。
  • msql_error: 取得最后错误信息。
  • msql_fetch_array: 返回数组资料。
  • msql_fetch_field: 取得字段信息。
  • msql_fetch_object: 返回类资料。
  • msql_fetch_row: 返回单列的各字段。
  • msql_fieldflags: 获得字段的标志。
  • msql_fieldlen: 获得字段的长度。
  • msql_fieldname: 返回指定字段的名称。
  • msql_fieldtable: 获得字段的资料表 (table) 名称。
  • msql_fieldtype: 获得字段的类型。
  • msql_field_seek: 配置指针到返回值的某字段。
  • msql_freeresult: 释放返回占用内存。
  • msql_free_result: 释放返回占用内存。
  • msql_listdbs: 列出可用数据库 (database)。
  • msql_listfields: 列出指定资料表的字段 (field)。
  • msql_listtables: 列出指定数据库的资料表 (table)。
  • msql_list_dbs: 列出可用数据库 (database)。
  • msql_list_fields: 列出指定资料表的字段 (field)。
  • msql_list_tables: 列出指定数据库的资料表 (table)。
  • msql_numfields: 取得返回字段的数目。
  • msql_numrows: 取得返回列的数目。
  • msql_num_fields: 取得返回字段的数目。
  • msql_num_rows: 取得返回列的数目。
  • msql_pconnect: 打开 mSQL 服务器持续连接。
  • msql_query: 送出一个 query 字符串。
  • msql_regcase: 将字符串逐字返回大小写字符。
  • msql_result: 取得查询 (query) 的结果。
  • msql_selectdb: 选择一个数据库。
  • msql_select_db: 选择一个数据库。
  • msql_tablename: 返回指定资料表的名称。
  • mssql_affected_rows: 取得最后 query 影响的列数。
  • mssql_close: 关闭与数据库的连接。
  • mssql_connect: 连上数据库。
  • mssql_data_seek: 移动列指针。
  • mssql_fetch_array: 返回数组资料。
  • mssql_fetch_field: 取得字段信息。
  • mssql_fetch_object: 返回类资料。
  • mssql_fetch_row: 返回单列的各字段。
  • mssql_field_seek: 配置指针到返回值的某字段。
  • mssql_free_result: 释放返回占用内存。
  • mssql_num_fields: 取得返回字段的数目。
  • mssql_num_rows: 取得返回列的数目。
  • mssql_pconnect: 打开 MS SQL 服务器持续连接。
  • mssql_query: 送出一个 query 字符串。
  • mssql_result: 取得查询 (query) 的结果。
  • mssql_select_db: 选择一个数据库。
  • mt_getrandmax: 随机数的最大值。
  • mt_rand: 取得随机数值。
  • mt_srand: 配置随机数种子。
  • mysql_affected_rows: 得到 MySQL 最后操作影响的列数目。
  • mysql_close: 关闭 MySQL 服务器连接。
  • mysql_connect: 打开 MySQL 服务器连接。
  • mysql_create_db: 建立一个 MySQL 新数据库。
  • mysql_data_seek: 移动内部返回指针。
  • mysql_db_query: 送查询字符串 (query) 到 MySQL 数据库。
  • mysql_drop_db: 移除数据库。
  • mysql_errno: 返回错误信息代码。
  • mysql_error: 返回错误信息。
  • mysql_fetch_array: 返回数组资料。
  • 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: 获得目前字段的资料表 (table) 名称。
  • mysql_field_type: 获得目前字段的类型。
  • mysql_free_result: 释放返回占用内存。
  • mysql_insert_id: 返回最后一次使用 INSERT 指令的 ID。
  • mysql_list_dbs: 列出 MySQL 服务器可用的数据库 (database)。
  • mysql_list_fields: 列出指定资料表的字段 (field)。
  • mysql_list_tables: 列出指定数据库的资料表 (table)。
  • mysql_num_fields: 取得返回字段的数目。
  • mysql_num_rows: 取得返回列的数目。
  • mysql_pconnect: 打开 MySQL 服务器持续连接。
  • mysql_query: 送出一个 query 字符串。
  • mysql_result: 取得查询 (query) 的结果。
  • mysql_select_db: 选择一个数据库。
  • mysql_tablename: 取得资料表名称。
  • next: 将数组的内部指针向后移动。
  • nl2br: 将换行字符转成 <br>。
  • number_format: 格式化数字字符串。
  • OCIBindByName: 让动态 SQL 可使用 PHP 变量。
  • OCIColumnIsNULL: 测试返回行是否为空的。
  • OCIColumnSize: 取得字段类型的大小。
  • OCICommit: 将 Oracle 的交易处理付诸实行。
  • OCIDefineByName: 让 SELECT 指令可使用 PHP 变量。
  • OCIExecute: 执行 Oracle 的指令部分。
  • OCIFetch: 取得返回资料的一列 (row)。
  • OCIFetchInto: 取回 Oracle 资料放入数组。
  • OCILogOff: 关闭与 Oracle 的链接。
  • OCILogon: 打开与 Oracle 的链接。
  • OCINewDescriptor: 初始新的 LOB/FILE 描述。
  • OCINumRows: 取得受影响字段的数目。
  • OCIParse: 分析 SQL 语法。
  • OCIResult: 从目前列 (row) 的资料取得一栏 (column)。
  • OCIRollback: 撤消当前交易。
  • OctDec: 八进位转十进位。
  • odbc_autocommit: 开关自动改动功能。
  • odbc_binmode: 配置二进位资料处理方式。
  • odbc_close: 关闭 ODBC 链接。
  • odbc_close_all: 关闭所有 ODBC 链接。
  • odbc_commit: 改动 ODBC 数据库。
  • odbc_connect: 链接至 ODBC 数据库。
  • odbc_cursor: 取得游标名。
  • odbc_do: 执行 SQL 指令。
  • odbc_exec: 执行 SQL 指令。
  • odbc_execute: 执行预置 SQL 指令。
  • odbc_fetch_into: 取得返回的指定列。
  • odbc_fetch_row: 取得返回一列。
  • odbc_field_len: 取得字段资料长度。
  • odbc_field_name: 取得字段名称。
  • odbc_field_type: 取得字段资料类型。
  • odbc_free_result: 释出返回资料的内存。
  • odbc_longreadlen: 配置返回栏的最大值。
  • odbc_num_fields: 取得字段数目。
  • odbc_num_rows: 取得返回列数目。
  • odbc_pconnect: 长期链接至 ODBC 数据库。
  • odbc_prepare: 预置 SQL 指令。
  • odbc_result: 取得返回资料。
  • odbc_result_all: 返回 HTML 表格资料。
  • odbc_rollback: 撤消当前交易。
  • odbc_setoption: 调整 ODBC 配置。
  • opendir: 打开目录 handle。
  • openlog: 打开系统纪录。
  • Ora_Bind: 链接 PHP 变量到 Oracle 参数。
  • Ora_Close: 关闭一个 Oracle 的 cursor。
  • Ora_ColumnName: 得到 Oracle 返回列 (Column) 的名称。
  • Ora_ColumnSize: 取得字段类型的大小。
  • Ora_ColumnType: 得到 Oracle 返回列 (Column) 的类型。
  • Ora_Commit: 将 Oracle 的交易处理付诸实行。
  • Ora_CommitOff: 关闭自动执行 Oracle 交易改动的功能。
  • Ora_CommitOn: 打开自动执行 Oracle 交易改动的功能。
  • Ora_Do: 快速的 SQL 查询。
  • Ora_Error: 获得 Oracle 错误信息。
  • Ora_ErrorCode: 获得 Oracle 错误代码。
  • Ora_Exec: 执行 Oracle 的指令部分。
  • Ora_Fetch: 取得返回资料的一列 (row)。
  • Ora_FetchInto: 取回 Oracle 资料放入数组。
  • Ora_GetColumn: 从返回列 (row) 的资料取得一栏 (column)。
  • Ora_Logoff: 结束与 Oracle 的链接。
  • Ora_Logon: 打开与 Oracle 的链接。
  • Ora_Numcols: 取得字段的数目。
  • Ora_Open: 打开 Oracle 的 cursor。
  • Ora_Parse: 分析 SQL 语法。
  • Ora_PLogon: 打开与 Oracle 的长期链接。
  • Ora_Rollback: 撤消当前交易。
  • Ord: 返回字符的序数值。
  • pack: 压缩资料到位字符串之中。
  • parse_str: 解析 query 字符串成变量。
  • parse_url: 解析 URL 字符串。
  • passthru: 执行外部程序并不加处理输出资料。
  • pclose: 关闭文件。
  • PDF_add_annotation: 加入注释。
  • PDF_add_outline: 目前页面加入书签。
  • PDF_arc: 绘弧。
  • PDF_begin_page: 启始 PDF 文件页面。
  • PDF_circle: 绘圆。
  • PDF_clip: 组合所有向量。
  • PDF_close: 关闭 PDF 文件。
  • PDF_closepath: 形成封闭的向量形状。
  • PDF_closepath_fill_stroke: 形成封闭的向量形状沿向量绘线并填满。
  • PDF_closepath_stroke: 形成封闭的向量形状并沿向量绘线。
  • PDF_close_image: 关闭图文件。
  • PDF_continue_text: 输出文字。
  • PDF_curveto: 绘贝氏曲线。
  • PDF_endpath: 关闭目前向量。
  • PDF_end_page: 关闭 PDF 文件页面。
  • PDF_execute_image: 放置 PDF 文件中图片到指定位置。
  • PDF_fill: 填满目前的向量。
  • PDF_fill_stroke: 填满目前的向量并沿向量绘线。
  • PDF_get_info: 返回文件信息。
  • PDF_lineto: 绘直线。
  • PDF_moveto: 配置处理的坐标点。
  • PDF_open: 建立新的 PDF 文件。
  • PDF_open_gif: 打开 GIF 图文件。
  • PDF_open_jpeg: 打开 JPEG 图文件。
  • PDF_open_memory_image: 打开内存图文件。
  • PDF_place_image: 放置图片到 PDF 文件指定位置。
  • PDF_put_image: 放置图片到 PDF 文件。
  • PDF_rect: 绘长方形。
  • PDF_restore: 还原环境变量。
  • PDF_rotate: 旋转类。
  • PDF_save: 储存环境变量。
  • PDF_scale: 缩放类。
  • PDF_setdash: 配置虚线样式。
  • PDF_setflat: 配置平滑值。
  • PDF_setgray: 指定绘图的颜色为灰阶并填入。
  • PDF_setgray_fill: 指定填入的颜色为灰阶。
  • PDF_setgray_stroke: 指定绘图的颜色为灰阶。
  • PDF_setlinecap: 配置 linecap 参数。
  • PDF_setlinejoin: 配置连接参数。
  • PDF_setlinewidth: 配置线宽。
  • PDF_setmiterlimit: 配置斜边界限。
  • PDF_setrgbcolor: 指定绘图的颜色为彩色并填入。
  • PDF_setrgbcolor_fill: 指定填入的颜色为彩色。
  • PDF_setrgbcolor_stroke: 指定绘图的颜色为彩色。
  • PDF_set_char_spacing: 配置字符间距。
  • PDF_set_duration: 配置二页的切换时间。
  • PDF_set_font: 配置使用的字型及大小。
  • PDF_set_horiz_scaling: 配置文字水平间距。
  • PDF_set_info_author: 配置文件作者。
  • PDF_set_info_creator: 配置建文件者字符串。
  • PDF_set_info_keywords: 配置文件的关键字。
  • PDF_set_info_subject: 配置文件主题。
  • PDF_set_info_title: 配置文件标题。
  • PDF_set_leading: 配置行距。
  • PDF_set_text_matrix: 配置文字矩阵。
  • PDF_set_text_pos: 配置文字位置。
  • PDF_set_text_rendering: 配置文字表现方式。
  • PDF_set_text_rise: 配置文字高度。
  • PDF_set_transition: 配置页的转换。
  • PDF_set_word_spacing: 配置字间距。
  • PDF_show: 输出字符串到 PDF 文件。
  • PDF_show_xy: 输出字符串到指定坐标。
  • PDF_stringwidth: 计算字符串的宽度。
  • PDF_stroke: 沿向量绘线。
  • PDF_translate: 移动原点。
  • pfsockopen: 打开网络的 Socket 持续链接。
  • pg_Close: 关闭 PostgreSQL 服务器连接。
  • pg_cmdTuples: 取得被 SQL 指令影响的资料笔数。
  • pg_Connect: 打开 PostgreSQL 服务器连接。
  • pg_DBname: 取得目前的数据库名称。
  • pg_ErrorMessage: 返回错误信息。
  • pg_Exec: 执行 query 指令。
  • pg_Fetch_Array: 返回数组资料。
  • pg_Fetch_Object: 返回类资料。
  • pg_Fetch_Row: 返回单列的各字段。
  • pg_FieldIsNull: 检查字段是否有资料。
  • pg_FieldName: 返回指定字段的名称。
  • pg_FieldNum: 取得指定字段的行数。
  • pg_FieldPrtLen: 计算可列示的长度。
  • pg_FieldSize: 计算指定字段的长度。
  • pg_FieldType: 获得目前字段的类型。
  • pg_FreeResult: 释放返回占用内存。
  • pg_GetLastOid: 取得最后的类代码。
  • pg_Host: 取得连接机器名称。
  • pg_loclose: 关闭大型类。
  • pg_locreate: 建立大型类。
  • pg_loopen: 打开大型类。
  • pg_loread: 读取大型类。
  • pg_loreadall: 读取大型类并输出。
  • pg_lounlink: 删除大型类。
  • pg_lowrite: 读取大型类。
  • pg_NumFields: 取得返回字段的数目。
  • pg_NumRows: 取得返回列的数目。
  • pg_Options: 取得连接机器选项。
  • pg_pConnect: 打开 PostgreSQL 服务器持续连接。
  • pg_Port: 取得连接机器埠号。
  • pg_Result: 取得查询 (query) 的结果。
  • pg_tty: 取得连接机器终端机。
  • phpinfo: 返回 PHP 所有相关信息。
  • phpversion: 返回 PHP 版本信息。
  • pi: 圆周率。
  • popen: 打开文件。
  • pos: 返回数组目前的元素。
  • pow: 次方。
  • preg_match: 字符串比对解析。
  • preg_match_all: 字符串整体比对解析。
  • preg_replace: 字符串比对解析并取代。
  • preg_split: 将字符串依指定的规则切开。
  • prev: 将数组的内部指针往前移动。
  • print: 输出字符串。
  • printf: 输出格式化字符串。
  • putenv: 配置系统环境变量。
  • quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。
  • QuoteMeta: 加入引用符号。
  • rand: 取得随机数值。
  • range: 建立一个整数范围的数组。
  • rawurldecode: 从 URL 专用格式字符串还原成普通字符串。
  • rawurlencode: 将字符串编码成 URL 专用格式。
  • readdir: 读取目录 handle。
  • readfile: 输出文件。
  • readgzfile: 读出压缩文件。
  • readlink: 返回符号链接 (symbolic link) 目标文件。
  • recode_file: 记录文件或文件请求到记录中。
  • recode_string: 记录字符串到记录中。
  • register_shutdown_function: 定义 PHP 程序执行完成后执行的函数。
  • rename: 更改文件名。
  • reset: 将数组的指针指到数组第一个元素。
  • rewind: 重置开文件的读写位置指针。
  • rewinddir: 重设目录 handle。
  • rmdir: 删除目录。
  • round: 四舍五入。
  • rsort: 将数组的值由大到小排序。
  • sem_acquire: 捕获信号。
  • sem_get: 取得信号代码。
  • sem_release: 释出信号。
  • serialize: 储存资料到系统中。
  • session_decode: Session 资料解码。
  • session_destroy: 结束 session。
  • session_encode: Session 资料编码。
  • session_id: 存取目前 session 代号。
  • session_is_registered: 检查变量是否注册。
  • session_module_name: 存取目前 session 模块。
  • session_name: 存取目前 session 名称。
  • session_register: 注册新的变量。
  • session_save_path: 存取目前 session 路径。
  • session_start: 初始 session。
  • session_unregister: 删除已注册变量。
  • setcookie: 送出 Cookie 信息到浏览器。
  • setlocale: 配置地域化信息。
  • settype: 配置变量类型。
  • set_file_buffer: 配置文件缓冲区大小。
  • set_magic_quotes_runtime: 配置 magic_quotes_runtime 值。
  • set_socket_blocking: 切换搁置与无搁置模式。
  • set_time_limit: 配置该页最久执行时间。
  • shm_attach: 打开建立共享内存空间。
  • shm_detach: 中止共享内存空间链接。
  • shm_get_var: 取得内存空间中指定的变量。
  • shm_put_var: 加入或更新内存空间中的变量。
  • shm_remove: 清除内存空间。
  • shm_remove_var: 删除内存空间中指定的变量。
  • shuffle: 将数组的顺序弄混。
  • similar_text: 计算字符串相似度。
  • Sin: 正弦计算。
  • sizeof: 获知数组的大小。
  • sleep: 暂停执行。
  • snmpget: 取得指定类识别码。
  • snmpwalk: 取得所有类。
  • snmpwalkoid: 取得网络本体树状信息。
  • snmp_get_quick_print: 取得 UCD 函数库中的 quick_print 值。
  • snmp_set_quick_print: 配置 UCD 函数库中的 quick_print 值。
  • solid_close: 关闭 solid 链接。
  • solid_connect: 链接至 solid 数据库。
  • solid_exec: 执行 SQL 指令。
  • solid_fetchrow: 取得返回一列。
  • solid_fieldname: 取得字段名称。
  • solid_fieldnum: 取得字段数目。
  • solid_freeresult: 释出返回资料的内存。
  • solid_numfields: 取得字段数目。
  • solid_numrows: 取得返回列数目。
  • solid_result: 取得返回资料。
  • sort: 将数组排序。
  • soundex: 计算字符串的读音值
  • split: 将字符串依指定的规则切开。
  • sprintf: 将字符串格式化。
  • sql_regcase: 将字符串逐字返回大小写字符。
  • Sqrt: 开平方根。
  • srand: 配置随机数种子。
  • stat: 取得文件相关信息。
  • strchr: 寻找第一个出现的字符。
  • strcmp: 字符串比较。
  • strcspn: 不同字符串的长度。
  • strftime: 将服务器的时间本地格式化。
  • StripSlashes: 去掉反斜线字符。
  • strip_tags: 去掉 HTML 及 PHP 的标记。
  • strlen: 取得字符串长度。
  • strpos: 寻找字符串中某字符最先出现处。
  • strrchr: 取得某字符最后出现处起的字符串。
  • strrev: 颠倒字符串。
  • strrpos: 寻找字符串中某字符最后出现处。
  • strspn: 找出某字符串落在另一字符串遮罩的数目。
  • strstr: 返回字符串中某字符串开始处至结束的字符串。
  • strtok: 切开字符串。
  • strtolower: 字符串全转为小写。
  • strtoupper: 字符串全转为大写。
  • strtr: 转换某些字符。
  • strval: 将变量转成字符串类型。
  • str_replace: 字符串取代。
  • substr: 取部份字符串。
  • sybase_affected_rows: 取得最后 query 影响的列数。
  • sybase_close: 关闭与数据库的连接。
  • sybase_connect: 连上数据库。
  • sybase_data_seek: 移动列指针。
  • sybase_fetch_array: 返回数组资料。
  • sybase_fetch_field: 取得字段信息。
  • sybase_fetch_object: 返回类资料。
  • sybase_fetch_row: 返回单列的各字段。
  • sybase_field_seek: 配置指针到返回值的某字段。
  • sybase_free_result: 释放返回占用内存。
  • sybase_num_fields: 取得返回字段的数目。
  • sybase_num_rows: 取得返回列的数目。
  • sybase_pconnect: 打开服务器持续连接。
  • sybase_query: 送出一个 query 字符串。
  • sybase_result: 取得查询 (query) 的结果。
  • sybase_select_db: 选择一个数据库。
  • symlink: 建立符号链接 (symbolic link)。
  • syslog: 纪录至系统纪录。
  • system: 执行外部程序并显示输出资料。
  • Tan: 正切计算。
  • tempnam: 建立只一的临时文件。
  • time: 取得目前时间的 UNIX 时间戳记。
  • touch: 配置最后修改时间。
  • trim: 截去字符串首尾的空格。
  • uasort: 将数组依使用者自定的函数排序。
  • ucfirst: 将字符串第一个字符改大写。
  • ucwords: 将字符串每个字第一个字母改大写。
  • uksort: 将数组的索引依使用者自定的函数排序。
  • umask: 改变目前的文件属性遮罩 umask。
  • uniqid: 产生只一的值。
  • unlink: 删除文件。
  • unpack: 解压缩位字符串资料。
  • unserialize: 取出系统资料。
  • unset: 删除变量。
  • urldecode: 还原 URL 编码字符串。
  • urlencode: 将字符串以 URL 编码。
  • usleep: 暂停执行。
  • usort: 将数组的值依使用者自定的函数排序。
  • utf8_decode: 将 UTF-8 码转成 ISO-8859-1 码。
  • utf8_encode: 将 ISO-8859-1 码转成 UTF-8 码。
  • virtual: 完成apache服务器的子请求 (sub-request)。
  • vm_addalias: 加入新别名。
  • vm_adduser: 加入新使用者。
  • vm_delalias: 删除别名。
  • vm_deluser: 删除使用者。
  • vm_passwd: 改变使用者密码。
  • wddx_add_vars: 将 WDDX 封包连续化。
  • wddx_deserialize: 将 WDDX 封包解连续化。
  • wddx_packet_end: 结束的 WDDX 封包。
  • wddx_packet_start: 开始新的 WDDX 封包。
  • wddx_serialize_value: 将单一值连续化。
  • wddx_serialize_vars: 将多值连续化。
  • xml_error_string: 取得 XML 错误字符串。
  • xml_get_current_byte_index: 取得目前解析为第几个位组。
  • xml_get_current_column_number: 获知目前解析的第几字段。
  • xml_get_current_line_number: 取得目前解析的行号。
  • xml_get_error_code: 取得 XML 错误码。
  • xml_parse: 解析 XML 文件。
  • xml_parser_create: 初始 XML 解析器。
  • 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_external_entity_ref_handler: 配置外部实体参引的标头。
  • xml_set_notation_decl_handler: 配置记法宣告的标头。
  • xml_set_object: 使 XML 解析器用类。
  • xml_set_processing_instruction_handler: 建立处理指令标头。
  • xml_set_unparsed_entity_decl_handler: 配置未解析实体宣告的标头。
  • yp_errno: 取得先前 YP 操作的错误码。
  • yp_err_string: 取得先前 YP 操作的错误字符串。
  • yp_first: 返回 map 上第一笔符合的资料。
  • yp_get_default_domain: 取得机器的 Domain。
  • yp_master: 取得 NIS 的 Master。
  • yp_match: 取得指定资料。
  • yp_next: 指定 map 的下笔资料。
  • yp_order: 返回 map 的序数。


First program

 hello, world


访客计数器 最终版

 您是第 10 位参观者


函数:Abs()

数学运算函数库

Abs

取得绝对值。

语法: mixed abs(mixed number);

返回值: 混合类型资料

函数种类: 数学运算

内容说明

返回参数 number 的绝对值。若 number 是倍精确浮点数，则返回值也是倍浮点数；其它的类型则返回类型为整数。


函数:Acos()

数学运算函数库

Acos

取得反余弦值。

语法: float acos(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

返回参数 arg 的反余弦值 (arc cosine)。

参考


函数:ada_afetch()

Adabas D 数据库链接函数库

ada_afetch

取得数据库的返回列。

语法: int ada_afetch(int result_id, int rownumber, array result_array);

返回值: 整数

函数种类: 数据库功能

内容说明

将数据库返回的列资料 (row) 放入数组变量中。参数 result_id 为数据库返回 ID 值。参数 rownumber 为指定的取得列 (row)。数组参数 result_array 为取得列的资料数组，通常在前面加上 "&" 符号。

参考

odbc_fetch_into()

整理: sadly (www.phpx.com)

[ 下一页 ]


函数:ada_autocommit()

Adabas D 数据库链接函数库

ada_autocommit

开关自动改动功能。

语法: int ada_autocommit(int connection_id, int [OnOff]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开或关闭自动更新 (auto-commit) 功能。参数 connection_id 为数据库链接的 ID 值。参数 OnOff 可省略，表打开或关闭自动改动功能，内定值为 on，欲关闭则设 off。返回值为目前的自动更新状态，若打开自动更新功能则返回 true；若关闭自动更新功能则返回 false。

参考

odbc_autocommit()


函数:ada_close()

Adabas D 数据库链接函数库

ada_close

关闭 Adabas D 链接。

语法: void ada_close(int connection_id);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来关闭与 Adabas D 数据库之间的链接。参数 connection_id 为数据库链接代号 ID 值。若正在执行 transactions 则无法关闭链接。

参考

odbc_close()


函数:ada_commit()

Adabas D 数据库链接函数库

ada_commit

改动 Adabas D 数据库。

语法: int ada_commit(int connection_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来改动 (commit) Adabas D 数据库。参数 connection_id 为数据库链接的 ID 值。若有配置 ada_autocommit() 成自动改动数据库时，则不需使用本函数。

参考

odbc_commit()


函数:ada_connect()

Adabas D 数据库链接函数库

ada_connect

链接至 Adabas D 数据库。

语法: int ada_connect(string dsn, string user, string password);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来链接到 Adabas D 数据库，返回值为链接的代号 ID 值。参数 dsn 为资料来源名称 (Data Sources Name)。参数 user 及 password 分别为链接的帐号及密码。

参考

odbc_connect()


函数:ada_exec()

Adabas D 数据库链接函数库

ada_exec

执行 SQL 指令。

语法: int ada_exec(int connection_id, string query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来执行 SQL 的 query 指令。参数 connection_id 为 Adabas D 链接代号 ID 值。参数 query 则为欲执行的指令。返回值为 Result ID 值。

参考

odbc_exec()


函数:ada_fetchrow()

Adabas D 数据库链接函数库

ada_fetchrow

取得返回一列。

语法: int ada_fetchrow(int result_id, int [row_number]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的一列。参数 result_id 为 Adabas D 返回 ID 值。参数 rownumber 可省略，为指定的取得列 (row)。

参考

odbc_fetch_row()


函数:ada_fieldname()

Adabas D 数据库链接函数库

ada_fieldname

取得字段名称。

语法: string ada_fieldname(int result_id, int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的字段名称。参数 result_id 为 Adabas D 数据库返回 ID 值。参数 field_number 为指定的字段，起始值为 1。

参考

odbc_field_name()


函数:ada_fieldtype()

Adabas D 数据库链接函数库

ada_fieldtype

取得字段资料类型。

语法: string ada_fieldtype(int result_id, int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的字段资料类型。参数 result_id 为 Adabas D 返回 ID 值。参数 field_number 为指定的字段，起始值为 1。

参考

odbc_field_type()


函数:ada_freeresult()

Adabas D 数据库链接函数库

ada_freeresult

释出返回资料的内存。

语法: int ada_freeresult(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可用来释出返回资料所使用的内存，通常在系统内存资源不足的情形下才需要使用。参数 result_id 为 Adabas D 返回 ID 值。返回值永远都是 true。

参考

odbc_free_result()


函数:ada_numfields()

Adabas D 数据库链接函数库

ada_numfields

取得字段数目。

语法: int ada_numfields(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得返回资料的字段数目。参数 result_id 为 Adabas D 返回 ID 值。若发生错误则返回 -1。

参考

odbc_num_fields()


函数:ada_numrows()

Adabas D 数据库链接函数库

ada_numrows

取得返回列数目。

语法: int ada_numrows(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得返回列的数目。参数 result_id 为 Adabas D 数据库返回 ID 值。若有错误发生则返回 -1。

参考

odbc_num_rows()


函数:ada_result()

Adabas D 数据库链接函数库

ada_result

取得返回资料。

语法: string ada_result(int result_id, mixed field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得返回的资料。参数 result_id 为 Adabas D 返回 ID 值。参数 field 可以是数字类型，代表指定的字段序号 (从 1 开始)；亦可以是字符串类型，为指定的字段名称。

参考

odbc_result()


函数:ada_resultall()

Adabas D 数据库链接函数库

ada_resultall

返回 HTML 表格资料。

语法: int ada_resultall(int result_id, string [format]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来将取得的资料转成 HTML 的表格 (table) 格式。参数 result_id 为 Adabas D 返回 ID 值。参数 format 可省略，为表格的特殊配置值。返回值为资料列数。

参考

odbc_result_all()


函数:ada_rollback()

Adabas D 数据库链接函数库

ada_rollback

撤消当前交易。

语法: int ada_rollback(int connection_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取消 Adabas D 交易处理 (transaction) 对数据库所做的修改。若成功则返回 true，反之返回 false。

参考

odbc_rollback()


函数:AddSlashes()

字符串处理函数库

AddSlashes

字符串加入斜线。

语法: string addslashes(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数使需要让数据库处理的字符串，引号的部份加上斜线，以供数据库查询 (query) 能顺利运作。这些会被改的字符包括单引号 (')、双引号 (")、反斜线 backslash (\) 以及空字符 NUL (the null byte)。

参考

stripslashes() htmlspecialchars() quotemeta()

整理: sadly (www.phpx.com)

[ 下一页 ]


函数:apache_lookup_uri()

apache服务器专用函数库

apache_lookup_uri

获得所有的 URI 相关信息。

语法: class apache_lookup_uri(string filename);

返回值: 类别

函数种类: PHP 系统功能

内容说明

这个函数将 URI 的相关信息返回到类别变量中。返回的类别变量包括下列的属性:

  • 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


函数:apache_note()

apache服务器专用函数库

apache_note

获得及配置apache服务器的请求纪录。

语法: string apache_note(string note_name, string [note_value]);

返回值: 字符串

函数种类: PHP 系统功能

内容说明

这个apache服务器特有的函数能配置及取得请求纪录表的值。若只代入一个参数，则返回目前纪录的 note_name 值。若代入二个参数，则返回先前的 note_name 值，并将 note_name 设为新的 note_value 值。


函数:array()

数组处理函数库

array

建立一个新的数组。

语法: array array(...);

返回值: 数组

函数种类: 资料处理

内容说明

返回的参数是数组类型。参数可以是带有 => 运算子的索引。array() 其实不是一个正规的函数，它主要是要用来表示数组。

使用范例

下面范例用显示如何建立一个二维数组，如何指定联合数组的键值，及如何略过和继续数组中的数字索引。

$fruits = array(
"fruits" => array("a"=>"orange","b"=>"banana","c"=>"apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes" => array("first", 5 => "second", "third")
);

参考

list()


函数:array_walk()

数组处理函数库

array_walk

让使用者自订函数能处理数组中的每一个元素。

语法: int array_walk(array arr, string func);

返回值: 整数

函数种类: 资料处理

内容说明

此函数使每个数组元素 arr 依序与函数名称 func 相对应。元素传送到函数 func 的第一个参数，若参数超过一个，则每次都会有警告信息。要处理警告信息，可在本函数前面加上 '@' 字符 (变成 @array_walk)；或是使用 error_reporting 函数。

注意: 使用者自订函数 func 真的会将数组元素 arr 依序代入，所以任何对元素所做的改变都会影响到数组本身。

使用范例

<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");

function test_alter( $item1 ) {
$item1 = 'bogus';
}

function test_print( $item2 ) {
echo "$item2<br>\n";
}

array_walk( $fruits, 'test_print' );
array_walk( $fruits, 'test_alter' );
array_walk( $fruits, 'test_print' );
?>

参考


函数:arsort()

数组处理函数库

arsort

将数组的值由大到小排序。

语法: void arsort(array array);

返回值: 无

函数种类: 资料处理

内容说明

这个函数将数组的值重新排序，由大至小排列。数组的索引亦跟着值的顺序而变动。当您在程序中需要重新整理数组值的顺序时，就可以使用这个函数。

使用范例

底下的范例返回的结果为
fruits[a] = orange
fruits[d] = lemon
fruits[b] = banana
fruits[c] = apple。
我们可以看到水果名 (数组值) 已按英文字母的顺序由 z 往 a 重新排序，而索引亦跟着值变动。

<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
arsort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>

参考


函数:Asin()

数学运算函数库

Asin

取得反正弦值。

语法: float asin(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

返回参数 arg 的反正弦值 (arc sine)。

参考


函数:asort()

数组处理函数库

asort

将数组的值由小到大排序。

语法: void asort(array array);

返回值: 无

函数种类: 资料处理

内容说明

这个函数将数组的值重新排序，由小至大排列。数组的索引亦跟着值的顺序而变动。当您在程序中需要重新整理数组值的顺序时，就可以使用这个函数。

使用范例

底下的范例返回的结果为
fruits[c] = apple
fruits[b] = banana
fruits[d] = lemon
fruits[a] = orange
我们可以看到水果名 (数组值) 已按英
文字母的顺序由 a 往 z 排序，而索引亦跟着值变动。

<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
asort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>

参考


函数:aspell_check()

拼写检查函数库

aspell_check

检查一个单字。

语法: boolean aspell_check(int dictionary_link, string word);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数检查单字的拼写。若拼写正确则返回 true，不正确则返回 false。

使用范例

$aspell_link=aspell_new("english");
if (aspell_check($aspell_link,"testt")) {
echo "This is a valid spelling";
} else {
echo "Sorry, wrong spelling";
}


函数:aspell_check-raw()

拼写检查函数库

aspell_check-raw

检查一个单字，即使拼错也不改变或修正。

语法: boolean aspell_check_raw(int dictionary_link, string word);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数检查单字的拼写。若拼写正确则返回 true，不正确则返回 false。本函数不会改变或者修正使用者的拼写。

使用范例

$aspell_link=aspell_new("english");
if (aspell_check_raw($aspell_link,"testt")) {
echo "This is a valid spelling";
} else {
echo "Sorry, wrong spelling";
}


函数:aspell_new()

拼写检查函数库

aspell_new

载入一个新的字典。

语法: int aspell_new(string master, string personal);

返回值: 整数

函数种类: 资料处理

内容说明

本函数载入一个新的字典，并赋与一个新的身份值 (整数)，以供程序中使用。

使用范例

$aspell_link=aspell_new("english");


函数:aspell_suggest()

拼写检查函数库

aspell_suggest

检查一个单字，并提供拼写建议。

语法: array aspell_suggest(int dictionary_link, string word);

返回值: 数组

函数种类: 资料处理

内容说明

本函数检查单字的拼写。并给予可能的拼法及正确的建议，以数组类型将结果返回。

使用范例

<?
$aspell_link=aspell_new("english");

if (!aspell_check($aspell_link,"testt")) {
$suggestions=aspell_suggest($aspell_link,"testt");

for($i=0; $i < count($suggestions); $i++) {
echo "Possible spelling: " . $suggestions[$i] . "<br>";
}
}
?>


函数:Atan()

数学运算函数库

Atan

取得反正切值。

语法: float atan(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

返回参数 arg 的反正切值 (arc tangent)。

参考


函 式：Atan2

函数:Atan2()

数学运算函数库

Atan2

计算二数的反正切值。 语法: float atan2(float y, float x); 返回值: 浮点数 函数种类: 数学运算
内容说明
本函数用来计算二数 y、x 的反正切值，计算结果与 atan() 计算 y/x 类似，但本函数会因 x、y 的正负号影响结果。而本函数的返回值必落在正负的圆周率间 (-PI <= (值) ≶= PI)
参考


函数:base64_decode()

URL 处理函数库

base64_decode

将 BASE64 编码字符串解码。

语法: string base64_decode(string encoded_data);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将以 MIME BASE64 编码字符串解码。解码后的字符串可能为中文字符串或其它的二进位资料。

参考

base64_encode()


函数:base64_encode()

URL 处理函数库

base64_encode

将字符串以 BASE64 编码。

语法: string base64_encode(string data);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将字符串以 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网络上顺利传输。在 BASE64 编码后的字符串只包含英文字母大小写、阿拉伯数字、加号与反斜线，共 64 个基本字符，不包含其它特殊的字符，因而才取名 BASE64。编码后的字符串比原来的字符串长度再加 1/3 左右。更多的 BASE64 编码信息可以参考 RFC2045 文件之 6.8 节。

参考


函数:base_convert()

数学运算函数库

base_convert

转换数字的进位方式。

语法: string base_convert(string number, int frombase, int tobase);

返回值: 字符串

函数种类: 数学运算

内容说明

本函数将数字字符串 number 从以 frombase 进位转换到以 tobase 进位。本式能够处理的由以二进位到以三十六进位之间的进位方式。在十进位之前都是以数字表示，而在超过十进位之后就用英文字母表示。例如十六进位个位数依序为 123456789abcdef，10 的顺序是第十七个，这时才进一位。而三十六进位 a 是第十个、b 为第十一个、z 为第三十六个、10 是第三十七个，这时才进位。

使用范例

本例将十六进位字符串转成二进位字符串

<?php
$binary = base_convert($hexadecimal, 16, 2);
echo "十六进位字符串\"$hexadecimal\"转成二进位为\"$binary\"。";
?>


函数:basename()

文件系统函数库

basename

返回不含路径的文件字符串。

语法: string basename(string path);

返回值: 字符串

函数种类: 文件存取

内容说明

将含路径及文件字符串中的路径拿掉，返回只含文件名的字符串。在 Windows 系列的操作系统中，路径可以是斜线 (/) 或反斜线 (\)；在 UNIX 系列的操作系统，路径为斜线 (/)。

使用范例

下例中的 $file 变量值为 "index.php"

<?php
$path = "/home/httpd/html/index.php";
$file = basename($path);
?>

参考

dirname()


函数:bcadd()

BC 高精确度函数库

bcadd

将二个高精确度数字相加。

语法: string bcadd(string left operand, string right operand, int [scale]);

返回值: 字符串

函数种类: 数学运算

内容说明

此函数将二个高精确度的数字相加，传入二个字符串，结果亦以字符串返回。scale 是一个可有可无的选项，表示返回值的小数点后所需的位数。

参考

bcsub()


函数:bccomp()

BC 高精确度函数库

bccomp

比较二个高精确度数字。

语法: int bccomp(string left operand, string right operand, int [scale]);

返回值: 整数

函数种类: 数学运算

内容说明

此函数比较二个高精确度的数字。输入二个字符串，若二个字符串一样大则返回 0；若左边的数字字符串 (left operand) 比右边 (right operand) 的大则返回 +1；若左边的数字字符串比右边的小则返回 -1。scale 是一个可有可无的选项，表示返回值的小数点后所需的位数。


函数:bcdiv()

BC 高精确度函数库

bcdiv

将二个高精确度数字相除。

语法: string bcdiv(string left operand, string right operand, int [scale]);

返回值: 字符串

函数种类: 数学运算

内容说明

此函数将二个高精确度的数字相除，传入二个字符串，以左边的数字字符串 (left operand) 除以右边的 (right operand) 数字字符串。结果亦以字符串返回。scale 是一个可有可无的选项，表示返回值的小数点后所需的位数。

参考

bcmul()


函数:bcmod()

BC 高精确度函数库

bcmod

取得高精确度数字的余数。

语法: string bcmod(string left operand, string modulus);

返回值: 字符串

函数种类: 数学运算

内容说明

得到 left operand 被 modulus 除后的余数字符串。

参考

bcdiv()


函数:bcmul()

BC 高精确度函数库

bcmul

将二个高精确度数字相乘。

语法: string bcmul(string left operand, string right operand, int [scale]);

返回值: 字符串

函数种类: 数学运算

内容说明

此函数将二个高精确度的数字相乘，传入二个字符串，以左边的数字字符串 (left operand) 乘以右边的 (right operand) 数字字符串。结果亦以字符串返回。scale 是一个可有可无的选项，表示返回值的小数点后所需的位数。

参考

bcdiv()


函数:bcpow()

BC 高精确度函数库

bcpow

求一高精确度数字次方值。

语法: string bcpow(string x, string y, int [scale]);

返回值: 字符串

函数种类: 数学运算

内容说明

此函数求一高精确度数字 x 的 y 次方。结果亦以字符串返回。scale 是一个可有可无的选项，表示返回值的小数点后所需的位数。

参考

bcsqrt()


函数:bcscale()

BC 高精确度函数库

bcscale

配置程序中所有 BC 函数库的内定小数点位数。

语法: string bcscale(int scale);

返回值: 字符串

函数种类: 数学运算

内容说明

配置所有返回值的小数点后所需的位数。之后程序若无特别指定，则依此配置的小数点位数。


函数:bcsqrt()

BC 高精确度函数库

bcsqrt

求一高精确度数字的平方根。

语法: string bcsqrt(string operand, int [scale]);

返回值: 字符串

函数种类: 数学运算

内容说明

此函数求一高精确度数字开平方根值。scale 是一个可有可无的选项，表示返回值的小数点后所需的位数。

参考

bcpow()


函数:bcsub()

BC 高精确度函数库

bcsub

将二个高精确度数字相减。

语法: string bcsub(string left operand, string right operand, int [scale]);

返回值: 字符串

函数种类: 数学运算

内容说明

此函数将二个高精确度的数字相减，传入二个字符串，以左边的 (left operand) 减去右边的 (right operand) 值。scale 是一个可有可无的选项，表示返回值的小数点后所需的位数。

参考

bcadd()


函数:bin2hex()

字符串处理函数库

bin2hex

二进位转成十六进位。

语法: string bin2hex(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数让二进位字符串转成十六进位字符串。

使用范例

补充:
josh@superfork.com (22-Jun-1999) 写了一个函数，可将十六进位转成二进位。

<?
function hex2bin($data) {
$len = strlen($data);
for($i=0;$i<$len;$i+=2) {
$newdata .= pack("C",hexdec(substr($string,$i,2)));
}
return $newdata;
}
?>


函数:BinDec()

数学运算函数库

BinDec

二进位转成十进位。

语法: int bindec(string binary_string);

返回值: 整数

函数种类: 数学运算

内容说明

本函数将二进位数字字符串转成十进位的整数。由于 PHP 使用 32 位有正负号整数计算，能处理的最大十进位数字为 2147483647，也就是二进位数字的 1111111111111111111111111111111 (31 个 1)。

参考

DecBin()


函数:Ceil()

数学运算函数库

Ceil

计算大于指定数的最小整数。

语法: int ceil(float number);

返回值: 整数

函数种类: 数学运算

内容说明

本函数用来计算比浮点参数 number 大的最小整数。

使用范例

本例返回值为 4。

<?php
$nextint=ceil(3.14);
echo $nextint;
?>

参考


函数:chdir()

目录管理函数库

chdir

改变目录。

语法: int chdir(string directory);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来改变目前 PHP 执行的目录到新的 directory 目录中。若无法改变则返回 false，成功则返回 true。


函数:checkdate()

日期与时间函数库

checkdate

验证日期的正确性。

语法: int checkdate(int month, int day, int year);

返回值: 整数

函数种类: 时间日期

内容说明

若日期是有效的则返回 true，若日期有问题，则返回 false。本函数可以用来检查日期是否有效。有效范围如下：

年 为 0 至 32767 年
月 为 1 至 12 月
日 则随着月份及闰年变化

整理: sadly (www.phpx.com)

[ 下一页 ]


函数:checkdnsrr()

网络函数库

checkdnsrr

检查指定网址的 DNS 记录。

语法: int checkdnsrr(string host, string [type]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来检查 DNS 的字段纪录。指定的参数 host 可以是网络位址 (IP Address)，也可以用机器名称 (Domain Name)。参数 type 可以省略，内定值为 MX。而参数 type 的值可为以下的其中之一：A、MX、NS、SOA、PTR、CNAME 或 ANY。若找到了指定网址的 DNS 字段，返回 true；若未找到指定的 DNS 字段或是有错误均会返回 false。

参考


函数:chgrp()

文件系统函数库

chgrp

改变文件所属的群组。

语法: int chgrp(string filename, mixed group);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来改变文件所属的群组，只有系统管理员权限可以任意改变文件所属群组，其余的使用者都只能改变本身拥有的文件。成功返回 true，失败返回 false；在 Windows 系列操作系统中，本函数什么也不做就返回 true。

参考


函数:chmod()

文件系统函数库

chmod

改变文件的属性。

语法: int chmod(string filename, int mode);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来改变文件的属性。成功则返回 true、失败返回 false。在 mode 值中，系统不会自动将它加入 0 以获得正确的八进位演算，若要正确的使用，可以用下例第二行的方式。

使用范例

下二行都是将文件属性设为 rwxr-xr-x，但以第二行较好。

<?
chmod("/mydir/myfile", 755 ); // mode 为十进位，可能有潜在错误
chmod("/mydir/myfile", 0755 ); // mode 为八进位，确定的属性值
?>

参考


函数:Chop()

字符串处理函数库

Chop

去除连续空白。

语法: string chop(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串的连续空白清除。

使用范例

<?
$trimmed = Chop($line);
?>

参考

trim()


函数:chown()

文件系统函数库

chown

改变文件的拥有者。

语法: int chown(string filename, mixed user);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来改变文件的拥有人，只有系统管理员权限可以任意改变文件所属群组，其余的使用者都只能改变本身拥有的文件。成功返回 true，失败返回 false；在 Windows 系列操作系统中，本函数什么也不做就返回 true。

参考

chmod()


函数:Chr()

字符串处理函数库

Chr

返回序数值的字符。

语法: string chr(int ascii);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符的序数转成 ASCII 的字符。本函数和 ord() 成对照。

使用范例

<?
$str .= chr(27);
$str = sprintf("字符串的结束字符是: %c", 27);
?>

参考


函数:chunk_split()

字符串处理函数库

chunk_split

将字符串分成小段。

语法: string chunk_split(string string, int [chunklen] , string [end]);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符变成小段供其它函数使用。例如，base64_encode。内定是参数 chunklen (76 个字符) 每隔 76 个字符插入 end ("\r\n")。返回新字符串而不改动原字符串。

使用范例

将字符串 $data 格式化成 MIME BASE64 格式

<?
$new_string = chunk_split(base64_encode($data));
?>

参考

ereg_replace()


函数:clearstatcache()

文件系统函数库

clearstatcache

清除文件状态快取。

语法: void clearstatcache(void);

返回值: 无

函数种类: 文件存取

内容说明

对操作系统而言，使用 stat() 或 lstat() 二个函数是很耗资源的，尤其是当每次都要重新呼叫 stat() 及 lstat() 二个函数时，更是不经济的方式。因此为节省资源，PHP 系统会将文件状态放在快取内存中，以便随时使用。而本函数就是提供清除快取内存中文件信息的函数。受本函数影响的函数有 stat()、lstat()、file_exists()、is_writeable()、is_readable()、is_executable()、is_file()、is_dir()、is_link()、filectime()、fileatime()、filemtime()、fileinode()、filegroup()、fileowner()、filesize()、filetype() 及 fileperms() 等十八个。

参考

stat() lstat() file_exists() is_writeable() is_readable() is_executable() is_file() is_dir() is_link() filectime() fileatime() filemtime() fileinode() filegroup() fileowner() filesize() filetype() fileperms()


函数:closedir()

目录管理函数库

closedir

关闭目录 handle。

语法: void closedir(int dir_handle);

返回值: 无

函数种类: 文件存取

内容说明

本函数用来关闭目录资料流的 dir_handle。这个 dir_handle 参数所操作的目录必须要 opendir() 打开的方可使用。


函数:closelog()

网络函数库

closelog

关闭系统纪录。

语法: int closelog(void);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数用来关闭已打开的系统纪录。本函数无传入参数，亦不是必须要的函数，PHP 脚本程序在执行完成后就会自动关闭打开的资源。

参考


函数:connection_aborted()

杂项函数库

connection_aborted

若链接中断则返回 true。

语法: int connection_aborted(void);

返回值: 整数

函数种类: 网络系统

内容说明

若与客户端 (Client) 失去链接则返回 true 值。本函数不须输入参数。


函数:connection_status()

杂项函数库

connection_status

取得连接状态。

语法: int connection_status(void);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可返回连接状态。使用时不须输入参数。


函数:connection_timeout()

杂项函数库

connection_timeout

若超过 PHP 程序执行时间则返回 true。

语法: int connection_timeout(void);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若 PHP 程序 (script) 执行时间超过配置值则返回 true。使用时不须输入参数。


函数:convert_cyr_string()

字符串处理函数库

convert_cyr_string

转换古斯拉夫字符串成其它字符串。

语法: string convert_cyr_string(string str, string from, string to);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将古斯拉夫字符串转成其它的字符串。from 及 to 二个参数是字符，其代表意义如下：

  • k - koi8-r
  • w - windows-1251
  • i - iso8859-5
  • a - x-cp866
  • d - x-cp866
  • m - x-mac-cyrillic


函数:copy()

文件系统函数库

copy

复制文件。

语法: int copy(string source, string dest);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来复制文件。成功则返回 true、失败返回 false。

使用范例

本例复制文件，失败时显示复制失败的信息。

<?
if (!copy($file, $file.'.bak')) {
print("复制文件 $file 失败...<br>\n");
}
?>

参考

rename()


函数:Cos()

数学运算函数库

Cos

余弦计算。

语法: float cos(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数计算参数 arg 的余弦值 (cosine)。

参考


函数:count()

数组处理函数库

count

计算变量或数组中的元素个数。

语法: int count(mixed var);

返回值: 整数

函数种类: 资料处理

内容说明

这个函数用来计算数组的元素个数 (亦可将变量代入，只不过返回的整数将是 1)。变量还没有配置时，返回值为 0。变量若不是数组，返回值为 1。

参考


函数:crypt()

字符串处理函数库

crypt

将字符串用 DES 编码加密。

语法: string crypt(string str, string [salt]);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数，无法解密。欲比对字符串，将已加密的字符串的头二个字符放在 salt 的参数中，再比对加密后的字符串。

更详细的资料请参考 UNIX Manual (man) 中的 crypt。

在一些较新的 UNIX 版本中，除了 DES 之外还提供了其它的加密模块，如 MD5。甚至有些系统还用 MD5 取代 DES。在 salt 参数还有一些变化，端看传给 salt 参数的字符串长度而定：

  • CRYPT_STD_DES - 标准的 DES 编码，输入 2 字符的 salt。
  • CRYPT_EXT_DES - 延伸的 DES 编码，输入 9 字符的 salt。
  • CRYPT_MD5 - MD5 编码，输入 12 字符加上 $1$ 的 salt。
  • CRYPT_BLOWFISH - 延伸的 DES 编码，输入 16 字符加上 $2$ 的 salt。

此外，若不使用 salt 参数，则程序会自动产生。


函数:current()

数组处理函数库

current

返回数组中目前的元素。

语法: mixed current(array array);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

说明: 每一个数组变量都有一个内部指针，指到它的每一个元素。此外，为了交互参考，数组有份所有元素的双向链结表。数组的内部指针指到原先插入的元素上，直到程序执行到有改动数组指针的函数。函数 current() 简单地返回数组元素中目前指到的数组内部指针。它不会改变指针的值，若数组指针指到内部指针表外，则返回 false 的值。

注意: 若数组中包含空的元素 (0 或者 "" 空字符串)，则本函数会返回 false 值。要是目前元素是个零值的空元素或者是超出数组指针，结果当然是未定的 false 值。遇到这种情形，可以使用 each() 函数会更适合。

参考


函数:date()

日期与时间函数库

date

将服务器的时间格式化。

语法: string date(string format, int [timestamp]);

返回值: 字符串

函数种类: 时间日期

内容说明

返回值的字符串依配置的格式来决定。若有传入时间戳记值，则将时间戳记格式化返回；若无传入时间戳记值，则将目前服务器的时间格式化返回。要将日期转为其它的语系格式，应使用setlocale() 及 strftime() 二个函数。字符串格式化的选项如下：

  • a - "am" 或是 "pm"
  • A - "AM" 或是 "PM"
  • d - 几日，二位数字，若不足二位则前面补零; 如: "01" 至 "31"
  • D - 星期几，三个英文字母; 如: "Fri"
  • F - 月份，英文全名; 如: "January"
  • h - 12 小时制的小时; 如: "01" 至 "12"
  • H - 24 小时制的小时; 如: "00" 至 "23"
  • g - 12 小时制的小时，不足二位不补零; 如: "1" 至 12"
  • G - 24 小时制的小时，不足二位不补零; 如: "0" 至 "23"
  • i - 分钟; 如: "00" 至 "59"
  • j - 几日，二位数字，若不足二位不补零; 如: "1" 至 "31"
  • l - 星期几，英文全名; 如: "Friday"
  • m - 月份，二位数字，若不足二位则在前面补零; 如: "01" 至 "12"
  • n - 月份，二位数字，若不足二位则不补零; 如: "1" 至 "12"
  • M - 月份，三个英文字母; 如: "Jan"
  • s - 秒; 如: "00" 至 "59"
  • S - 字尾加英文序数，二个英文字母; 如: "th"，"nd"
  • t - 指定月份的天数; 如: "28" 至 "31"
  • U - 总秒数
  • w - 数字型的星期几，如: "0" (星期日) 至 "6" (星期六)
  • Y - 年，四位数字; 如: "1999"
  • y - 年，二位数字; 如: "99"
  • z - 一年中的第几天; 如: "0" 至 "365"

其它不在上列的字符则直接列出该字符。

使用范例

范例一:
<?
print(date( "l dS of F Y h:i:s A" ));
print("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));
?>

范例二:
<?
$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);
?>

参考


函数:dba_close()

DBA 函数库

dba_close

关闭数据库。

语法: void dba_close(int handle);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来将已打开的数据库关闭。参数 handle 为打开数据库时所返回来的代号 ID。

参考


函数:dba_delete()

DBA 函数库

dba_delete

删除指定资料。

语法: int dba_delete(string key, int handle);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将删除指定的资料。参数 key 为欲删除的键值 (key)。参数 handle 为打开数据库时所返回来的代号 ID。删除成功则返回 true 值。

参考


函数:dba_exists()

DBA 函数库

dba_exists

检查键是否存在。

语法: boolean dba_exists(string key, int handle);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来检查指定的键是否存在。参数 key 为待检查的键值 (key)。参数 handle 为打开数据库时所返回来的代号 ID。若键存在则返回 true 值。

参考


函数:dba_fetch()

DBA 函数库

dba_fetch

取回指定资料。

语法: string dba_fetch(string key, int handle);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数取得指定的资料。参数 key 为欲取出资料的键值 (key)。参数 handle 为打开数据库时所返回来的代号 ID。返回值即为资料字符串，若取出失败则返回 false。

参考


函数:dba_firstkey()

DBA 函数库

dba_firstkey

取回首笔键值。

语法: string dba_firstkey(int handle);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数取得数据库的第一笔键值 (key)。参数 handle 为打开数据库时所返回来的代号 ID。返回值即为键值，若取出失败则返回 false。

参考

dba_nextkey()


函数:dba_insert()

DBA 函数库

dba_insert

加入资料。

语法: boolean dba_insert(string key, string value, int handle);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数将加入资料至数据库中。参数 key 为键值 (key) 字符串。参数 value 为欲加入的资料内容。参数 handle 为打开数据库时所返回来的代号 ID。成功则返回 true 值。

参考


函数:dba_nextkey()

DBA 函数库

dba_nextkey

取回下笔键值。

语法: string dba_nextkey(int handle);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数取得数据库的下一笔键值 (key)。参数 handle 为打开数据库时所返回来的代号 ID。返回值即为键值，若取出失败则返回 false。

参考

dba_firstkey()


函数:dba_open()

DBA 函数库

dba_open

打开数据库链接。

语法: int dba_open(string path, string mode, string handler);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开指定的数据库。参数 path 为数据库的路径及数据库名称，例如 "/tmp/mysite/wahaha.db"。参数 mode 值如下表

属性 | 说明
r | 打开只读既有数据库
w | 打开可读写既有数据库
c | 打开可读写数据库，若不存在则建立
n | 删去现有数据库，若不存在则建立，之后可读写

参数 handler 为打开数据库的种类，有 dbm、ndbm、gdbm、db2 或 cdb 等种类。返回值为数据库的代号 ID，若失败则返回 false。本函数和 dba_popen() 不同的地方在于本函数打开的数据库在 PHP 程序结束后即关闭，dba_popen() 会保持与数据库连接，待下次再执行，则不必再打开与数据库的链接。

参考


函数:dba_optimize()

DBA 函数库

dba_optimize

最佳化数据库。

语法: boolean dba_optimize(int handle);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数将数据库最佳化。参数 handle 为打开数据库时所返回来的代号 ID。最佳化成功则返回 true 值，反之则返回 false。

参考

dba_sync()


函数:dba_popen()

DBA 函数库

dba_popen

打开并保持数据库链接。

语法: int dba_popen(string path, string mode, string handler);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开指定的数据库，并保持与数据库连接的状态。参数 path 为数据库的路径及数据库名称，例如 "/tmp/mysite/wahaha.db"。参数 mode 值如下表

属性 | 说明
r | 打开只读既有数据库
w | 打开可读写既有数据库
c | 打开可读写数据库，若不存在则建立
n | 删去现有数据库，若不存在则建立，之后可读写

参数 handler 为打开数据库的种类，有 dbm、ndbm、gdbm、db2 或 cdb 等种类。返回值为数据库的代号 ID，若失败则返回 false。

参考


函数:dba_replace()

DBA 函数库

dba_replace

改动或加入资料。

语法: boolean dba_replace(string key, string value, int handle);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数改动数据库中的资料，若资料不存在则加入。参数 key 为键值 (key) 字符串。参数 value 为欲改动的资料内容。参数 handle 为打开数据库时所返回来的代号 ID。成功则返回 true 值。

参考


函数:dba_sync()

DBA 函数库

dba_sync

数据库同步化。

语法: boolean dba_sync(int handle);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数使系统在更新数据库时，能同时写入实体的数据库储存装置 (如硬碟) 之中。参数 handle 为打开数据库时所返回来的代号 ID。同步成功则返回 true 值，反之则返回 false。

参考

dba_optimize()


函数:dbase_add_record()

dBase 格式资料表函数库

dbase_add_record

加入资料到 dBase 资料表。

语法: boolean dbase_add_record(int dbase_identifier, array record);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数将新增资料到 dBase 资料表中。参数 dbase_identifier 为资料表的 ID 值。参数 record 为欲新增的资料数组，其中的各元素依序对映到资料表的各字段。


函数:dbase_close()

dBase 格式资料表函数库

dbase_close

关闭 dBase 资料表。

语法: boolean dbase_close(int dbase_identifier);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来关闭现有的 dBase 资料表。参数 dbase_identifier 为资料表的 ID 值。


函数:dbase_create()

dBase 格式资料表函数库

dbase_create

建立 dBase 资料表。

语法: int dbase_create(string filename, array fields);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来建立新的 dBase 资料表。参数 filename 为资料表的名字及路径。参数 fields 为数组，其中定义各字段的信息，包含字段名称、字段类型、及字段长度等。下表为 fields 的值

类型 | 说明
L | 布尔值 (Boolean)。不需定义资料长度。
M | 备忘资料 (Memo)。PHP 目前不支持本类型。
D | 日期 (Date)。储存格式为 YYYYMMDD。
N | 数字类型 (Number)。需定义小数前后的位数。
C | 字符串 (String)。需定义字符串长度。

若无法建立则返回 false，成功则返回资料表的 ID。

使用范例

下例为建立资料表的例子

<?php
$dbname = "/mypath/user.dbf";
// 定义资料表字段
$user = array(
array("name", "C", 10),
array("age", "N", 3, 0),
array("address", "C", 256),
array("birthday", "D"),
array("sex", "L")
);
if (!dbase_create($dbname, $user))
echo "无法建立使用者资料表";
?>


函数:dbase_delete_record()

dBase 格式资料表函数库

dbase_delete_record

删除 dBase 资料表的资料。

语法: boolean dbase_delete_record(int dbase_identifier, int record);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数将删除 dBase 资料表中的资料，实际上本函数只是将资料加入删除的标记，需使用 4.9.4 dbase_pack() 将资料真正清除。参数 dbase_identifier 为资料表的 ID 值。参数 record 为欲删除的资料列列号，列号从 1 开始计算。

参考

dbase_pack()


函数:dbase_get_record()

dBase 格式资料表函数库

dbase_get_record

取得 dBase 资料表的资料。

语法: array dbase_get_record(int dbase_identifier, int record);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数将取出 dBase 资料表中的一列资料。参数 dbase_identifier 为资料表的 ID 值。参数 record 为欲读取的资料列列号，列号从 1 开始计算。返回值为数组资料，各字段 PHP 会自动转成应有的资料类型，dBase 的 Date 类型将转成 PHP 的字符串类型。


函数:dbase_numfields()

dBase 格式资料表函数库

dbase_numfields

取得 dBase 资料表的字段数。

语法: int dbase_numfields(int dbase_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将计算出 dBase 资料表的资料字段数。参数 dbase_identifier 为资料表的 ID 值。字段数从 0 开始计算，意即 0 表示只有一栏。

使用范例

<?php
$rec = dbase_get_record($db, $recno);
$nf = dbase_numfields($db);
for ($i=0; $i < $nf; $i++) {
echo $rec[$i]."<br>\n";
}
?>


函数:dbase_numrecords()

dBase 格式资料表函数库

dbase_numrecords

取得 dBase 资料表的列数。

语法: int dbase_numrecords(int dbase_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将计算出 dBase 资料表的资料列数。参数 dbase_identifier 为资料表的 ID 值。资料列数从 1 开始计算。


函数:dbase_open()

dBase 格式资料表函数库

dbase_open

打开 dBase 资料表。

语法: int dbase_open(string filename, int flags);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开现有的 dBase 资料表。参数 filename 为资料表的名字及路径。参数 flags 为开文件的属性，0 表只读、1 表只写、2 表可读写。若无法打开则返回 false，成功则返回资料表的 ID 值。


函数:dbase_pack()

dBase 格式资料表函数库

dbase_pack

清理 dBase 资料表。

语法: boolean dbase_pack(int dbase_identifier);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数将清除现有的 dBase 资料表中标记为清除的资料列，意即将 dbase_delete_record() 所标记的资料删除。参数 dbase_identifier 为资料表的 ID 值。

参考

dbase_get_record()


函数:dblist()

dbm 类数据库函数库

dblist

取得 DBM 的信息。

语法: string dblist(void);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数取得 DBM 数据库函数库的相关信息。本函数不需输入参数，返回值为信息字符串。


函数:dbmclose()

dbm 类数据库函数库

dbmclose

关闭 DBM 数据库。

语法: boolean dbmclose(int handle);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来将已打开的数据库关闭。参数 handle 为打开数据库时所返回来的代号 ID。


函数:dbmdelete()

dbm 类数据库函数库

dbmdelete

删除指定资料。

语法: boolean dbmdelete(int handle, string key);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数将删除指定的资料。参数 handle 为打开数据库时所返回来的代号 ID。参数 key 为欲删除的键值 (key)。若该键值不存在无法删除则返回 false。


函数:dbmexists()

dbm 类数据库函数库

dbmexists

检查键是否存在。

语法: boolean dbmexists(int handle, string key);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来检查指定的键是否存在。参数 handle 为打开数据库时所返回来的代号 ID。参数 key 为待检查的键值 (key)。若键存在则返回 true 值。


函数:dbmfetch()

dbm 类数据库函数库

dbmfetch

取回指定资料。

语法: string dbmfetch(int handle, string key);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数取得指定的资料。参数 handle 为打开数据库时所返回来的代号 ID。参数 key 为欲取出资料的键值 (key)。返回值即为资料字符串，若取出失败则返回 false。


函数:dbmfirstkey()

dbm 类数据库函数库

dbmfirstkey

取回首笔键名。

语法: string dbmfirstkey(int handle);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数取得数据库的第一笔键名 (key)。参数 handle 为打开数据库时所返回来的代号 ID。返回值即为键名，若取出失败则返回 false。值的注意的是数据库的资料没有任何排序的情形，无法预期返回的资料是依何方式排序后的第一笔资料。若需要特定顺序的第一笔资料，则需读回全部的资料到数组中，再使用 PHP 的排序函数排序后方可取得所需值。


函数:dbminsert()

dbm 类数据库函数库

dbminsert

加入资料。

语法: int dbminsert(int handle, string key, string value);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将加入资料至数据库中。参数 handle 为打开数据库时所返回来的代号 ID。参数 key 为键值 (key) 字符串。参数 value 为欲加入的资料内容。成功则返回 0；返回值 -1 表示该数据库文件为只读的状态；返回值 1 则表示该键已经存在，可用 dbmreplace() 取代。


函数:dbmnextkey()

dbm 类数据库函数库

dbmnextkey

取回下笔键值。

语法: string dbmnextkey(int handle, string key);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数取得数据库的下一笔键值 (key)。参数 handle 为打开数据库时所返回来的代号 ID。返回值即为键值。

使用范例

<?php
// 之前已经打开 DBM 数据库。
$key = dbmfirstkey($dbm_id);
while ($key) {
echo "$key = " . dbmfetch($dbm_id, $key) . "\n";
$key = dbmnextkey($dbm_id, $key);
}
?>


函数:dbmopen()

dbm 类数据库函数库

dbmopen

打开 DBM 数据库链接。

语法: int dbmopen(string filename, string flags);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开指定的数据库。参数 path 为数据库的路径加上数据库名称。参数 mode 值如下表

属性 | 说明
r | 打开只读既有数据库
w | 打开可读写既有数据库
c | 打开可读写数据库，若不存在则建立
n | 删去现有数据库，若不存在则建立，之后可读写

返回值为数据库的代号 ID，若失败则返回 false。


函数:dbmreplace()

dbm 类数据库函数库

dbmreplace

改动或加入资料。

语法: boolean dbmreplace(int handle, string key, string value);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数改动数据库中的资料，若资料不存在则加入。参数 handle 为打开数据库时所返回来的代号 ID。参数 key 为键值 (key) 字符串。参数 value 为欲改动的资料内容。成功则返回 true 值。


函数:debugger_off()

网络函数库

debugger_off

关闭内建的 PHP 调试器。

语法: int debugger_off(void);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数用来关闭远端的机器 PHP 调试功能。本函数无传入参数。

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:debugger_on()

网络函数库

debugger_on

使用内建的 PHP 调试器。

语法: int debugger_on(string address);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数用来对远端的机器 PHP 调试。调试使用的埠 (Port) 在 php.ini 中的 debugger.port 字段配置，内定埠是 7869。

使用范例

<?php
debugger_on("123.123.123.123");
?>


函数:DecBin()

数学运算函数库

DecBin

十进位转二进位。

语法: string decbin(int number);

返回值: 字符串

函数种类: 数学运算

内容说明

本函数将十进位数字转成二进位字符串。由于 PHP 使用 32 位有正负号整数计算，能处理的最大十进位数字为 2147483647，也就是二进位数字的 1111111111111111111111111111111 (31 个 1)。

参考

BinDec()


函数:DecHex()

数学运算函数库

DecHex

十进位转十六进位。

语法: string dechex(int number);

返回值: 字符串

函数种类: 数学运算

内容说明

本函数将十进位数字转成十六进位字符串。由于 PHP 使用 32 位有正负号整数计算，能处理的最大十进位数字为 2147483647，也就是十六进位数字 7fffffff。

参考

HexDec()


函数:DecOct()

数学运算函数库

DecOct

十进位转八进位。

语法: string decoct(int number);

返回值: 字符串

函数种类: 数学运算

内容说明

本函数将十进位数字转成八进位字符串。由于 PHP 使用 32 位有正负号整数计算，能处理的最大十进位数字为 2147483647，也就是八进位数字 17777777777。

参考

OctDec()


函数:delete()

文件系统函数库

delete

无用的项目。

语法: void delete(string file);

返回值: 无

函数种类: 文件存取

内容说明

本函数为无用的项目。要删除文件用 unlink()、要删去变量用 unset()。

参考


函数:die()

杂项函数库

die

输出信息并中断 PHP 程序。

语法: void die(string message);

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数将送出字符串到浏览器并中断 PHP 程序 (Script)。参数 message 为欲送出的字符串。

使用范例

下例中，若无法打开 /etc/shadow 时，传给浏览器抱歉，无法打开: /etc/shadow。

<?php
$filename = "/etc/shadow";
$file = @fopen($filename, 'r')
or die("抱歉，无法?/font>}启: $filename");
echo "本行不会执行";
?>


函数:dir()

目录管理函数库

dir

目录类别类。

语法: new dir(string directory);

返回值: 类

函数种类: 文件存取

内容说明

这是一个类似面向对象的类别类，用来读取目录。当目录参数 directory 打开之后，有二个属性可用：handle 属性就像其它非类的函数所用的 readdir()、rewinddir() 及 closedir()；path 属性则配置打开目录后的路径参数。本类有三个方法 (method)：read、rewind 与 close。

使用范例

<?
$d = dir("/etc");
echo "Handle: ".$d->handle."<br>\n";
echo "Path: ".$d->path."<br>\n";
while($entry=$d->read()) {
echo $entry."<br>\n";
}
$d->close();
?>


函数:dirname()

文件系统函数库

dirname

取得路径中的目录名。

语法: string dirname(string path);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数返回 path 中的目录名称。在 Win32 系统中，用斜线 (/) 或者反斜线 (\) 都可以；但是其它的操作系统的路径都是 (/)。

使用范例

本例返回字符串 $file 为 "/etc"。

<?
$path = "/etc/hostname";
$file = dirname($path);
?>

参考

basename()


函数:diskfreespace()

文件系统函数库

diskfreespace

取得目录所在的剩余可用空间。

语法: float diskfreespace(string directory);

返回值: 浮点数

函数种类: 文件存取

内容说明

本函数用来取得目录所在储存装置的剩余空间，单位为位组 (byte)。

使用范例

本例可以知道根目录的剩余空间。

<?
$df = diskfreespace("/");
?>


函数:dl()

动态链接函数库

dl

载入 PHP 扩充模块。

语法: int dl(string library);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数可动态的载入 PHP 所需的外部扩充模块 library。


函数:doubleval()

变量处理函数库

doubleval

变量转成倍浮点数类型。

语法: double doubleval(mixed var);

返回值: 倍浮点数

函数种类: PHP 系统功能

内容说明

本函数可将变量转成倍浮点数类型。转换的变量 var 可以为数组或类之外的任何类型变量。

参考


函数:each()

数组处理函数库

each

返回数组中下一个元素的索引及值。

语法: array each(array array);

返回值: 数组

函数种类: 资料处理

内容说明

返回数组为目前数组指针的 索引/值 对。返回的数组有四个元素，依序为 0, 1, 索引, 及值。前述的 0 与 索引 为数组的索引，1 与 值则为数组元素的值。

使用范例

范例一:
<?
$foo = array( "bob", "fred", "jussi", "jouni" );
$bar = each( $foo );
?>
上面的例子，返回数组 $bar 的 索引/值 为
0 => 0
1 => 'bob'
key => 0
value => 'bob'

范例二:
<?
$foo = array( "Robert" => "Bob", "Seppo" => "Sepi" );
$bar = each( $foo );
?>
这个的例子，返回数组 $bar 的 索引/值 为
0 => 'Robert'
1 => 'Bob'
key => 'Robert'
value => 'Bob'

范例三:
each() 函数最典型的例子是拿来与 list() 函数合用，如下例的 $HTTP_POST_VARS 变量。
<?
echo "POST 所送出的值为:<br>";
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
echo "$key => $val<br>";
}
?>

参考


函数:easter_date()

日期与时间函数库

easter_date

计算复活节日期。

语法: int easter_date(int [year]);

返回值: 整数

函数种类: 时间日期

内容说明

输入某一年份，则以 UNIX 时间戳记的格式返回该年的复活节日期，若没有输入年份，则计算当年的日期。值的注意的是输入的年份必需在公元 1970 至 2037 年之间，否则无法计算。

使用范例

<?
echo date("M-d-Y", easter_date(1999));
echo date("M-d-Y", easter_date(2000));
echo date("M-d-Y", easter_date(2001));
?>

返回结果为
Apr-04-1999
Apr-23-2000
Apr-15-2001


函数:easter_days()

日期与时间函数库

easter_days

计算复活节与三月廿一日之间日期数。

语法: int easter_days(int [year]);

返回值: 整数

函数种类: 时间日期

内容说明

输入某一年份，则以计算该年复活节与三月二十一日之间的日期数，若没有输入年份，则以当年计算。这个函数可以用来替代 easter_date() 1970-2037 年外范围无法计算的问题。

使用范例

<?
echo easter_days(1999);
echo easter_days(1492);
echo easter_days(1913);
?>

返回结果为:
14 (4/4)
32 (4/22)
2 (3/23)

参考

easter_date()


函数:echo()

字符串处理函数库

echo

输出字符串。

语法: echo "string arg1, string [argn]...";

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数将字符串输出。由于它不是真正的函数，因此也没有返回值。

使用范例

<?php
echo "Hello World";
?>

参考


函数:empty()

变量处理函数库

empty

判断变量是否已配置。

语法: int empty(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数用来测试变量是否已经配置。若变量已存在、非空字符串或者非零，则返回 false 值；反之返回 true。值的注意的是 aulbach@unter.franken.de 指出 (27-May-1999) 若使用 empty($myvar) != !isset($myvar) 会造成 PHP 处理的问题。

参考


函数:end()

数组处理函数库

end

将数组的内部指针指到最后的元素。

语法: end(array array);

返回值: 无

函数种类: 资料处理

内容说明

本函数会改变数组的内部指针，它将指针指到最后一个元素上。

参考


函数:ereg()

正则表达式函数库

ereg

字符串比对解析。

语法: int ereg(string pattern, string string, array [regs]);

返回值: 整数/数组

函数种类: 资料处理

内容说明

本函数以 pattern 的规则来解析比对字符串 string。比对结果返回的值放在数组参数 regs 之中，regs[0] 内容就是原字符串 string、regs[1] 为第一个合乎规则的字符串、regs[2] 就是第二个合乎规则的字符串，余类推。若省略参数 regs，则只是单纯地比对，找到则返回值为 true。

使用范例

这个例子是 markus@dnet.it 在 14-Jun-1999 所提出的，可对使用者输入的 E-Mail 作简单的检查，检查使用者的 E-Mail 字符串是否有 @ 字符，在 @ 字符前有英文字母或数字，在之后有数节字符串，最后的小数点后只能有二个或三个英文字母。super@mail.wilson.gs 就可以通过检查，super@mail.wilson 就不能通过检查。

<?php
if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
echo "您的 E-Mail 通过初步检查";
}
?>

参考

ereg_replace() eregi() eregi_replace()

整理: sadly (www.phpx.com)

[ 下一页 ]


函数:ereg_replace()

正则表达式函数库

ereg_replace

字符串比对解析并取代。

语法: string ereg_replace(string pattern, string replacement, string string);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数以 pattern 的规则来解析比对字符串 string，欲取而代之的字符串为参数 replacement。返回值为字符串类型，为取代后的字符串结果。

使用范例

ken@freebsdrocks.com 在 16-Mar-1999 提出的例子。

<?php
$text = 'This is a {1} day, not {2} and {3}.';
$daytype = array( 1 => 'fine',
2 => 'overcast',
3 => 'rainy' );
while (ereg ('{([0-9]+)}', $text, $regs)) {
$found = $regs[1];
$text = ereg_replace("\{".$found."\}", $daytype[$found], $text);
}
echo "$text\n";
// This is a fine day, not overcast and rainy.
?>

ken@freebsdrocks.com 并同时提出具有相同功能的perl 程序范例如下：

$text = 'This is a {1} day, not {2} and {3}.';
%daytype = ( 1 => 'fine',
2 => 'overcast',
3 => 'rainy' );
$text =~ s/{(\d+)}/$daytype{$1}/eg;
print "$text\n";

参考


函数:eregi()

正则表达式函数库

eregi

字符串比对解析，与大小写无关。

语法: int eregi(string pattern, string string, array [regs]);

返回值: 整数/数组

函数种类: 资料处理

内容说明

本函数和 ereg() 类似，用法也相同。不同之处在于 ereg() 有区分大小写，本函数与大小写无关。

参考


函数:eregi_replace()

正则表达式函数库

eregi_replace

字符串比对解析并取代，与大小写无关。

语法: string eregi_replace(string pattern, string replacement, string string);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数和 ereg_replace() 类似，用法也相同。不同之处在于 ereg_replace() 有区分大小写，本函数与大小写无关。

参考


函数:error_log()

PHP 选项及相关信息函数库

error_log

送出一个错误信息。

语法: int error_log(string message, int message_type, string [destination], string [extra_headers]);

返回值: 整数

函数种类: PHP 系统功能

内容说明

此函数会送出错误信息到 Web 服务器的错误 log 文件，TCP Port，或到指定文件。第一个参数 message 即为要送出的错误信息。第二个参数 message_type 为整数值：0 表示送到操作系统的 log (UNIX 在 syslog、Windows NT 记录到事件记录)；1 则使用 PHP 的 Mail() 函数，送信息到某 E-Mail 处，第四个参数 extra_headers 亦会用到；2 则将错误信息送到 TCP 埠，此时第三个参数 destination 表示目的地 IP 及 Port；3 则将信息存到文件 destination 中。

使用范例

本例为登入 Oracle 数据库出现问题的处理。

<?php
if (!Ora_Logon($username, $password)) {
error_log("Oracle 数据库不可用!", 0);
}
if (!($foo = allocate_new_foo()) {
error_log("出现大麻烦了!", 1, "webmaster@www.mydomain.com.tw");
}
error_log("搞砸了!", 2, "127.0.0.1:7000");
error_log("搞砸了!", 2, "loghost");
error_log("搞砸了!", 3, "/var/tmp/my-errors.log");
?>


函数:error_reporting()

PHP 选项及相关信息函数库

error_reporting

配置错误信息回报的等级。

语法: int error_reporting(int [level]);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数用来配置错误信息回报的等级，参数 level 是一个整数的位遮罩 (bitmask)，见下表。

遮罩值 | 表示名称
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING

  • E_NOTICE 表示一般情形不记录，只有程序有错误情形时才用到，例如企图存取一个不存在的变量，或是呼叫 stat() 函数检视不存在的文件。
  • E_WARNING 通常都会显示出来，但不会中断程序的执行。这对除错很有效。例如：用有问题的正则表达式呼叫 ereg()。
  • E_ERROR 通常会显示出来，亦会中断程序执行。意即用这个遮罩无法追查到内存配置或其它的错误。
  • E_PARSE 从语法中解析错误。
  • E_CORE_ERROR 类似 E_ERROR，但不包括 PHP 核心造成的错误。
  • E_CORE_WARNING 类似 E_WARNING，但不包括 PHP 核心错误警告。


函数:escapeshellcmd()

程序执行功能函数库

escapeshellcmd

除去字符串中的特殊符号。

语法: string escapeshellcmd(string command);

返回值: 字符串

函数种类: 操作系统与环境

内容说明

本函数除去了字符串中的特殊符号，可以防止使用者耍花招来破解该服务器系统。可以用本函数搭配 exec() 或是 system() 二个函数，酱子可以减少网络上的使用者恶意的破晃募机会。

使用范例

<?php
system(EscapeShellCmd($cmdline));
?>


函数:eval()

杂项函数库

eval

将值代入字符串之中。

语法: void eval(string code_str);

返回值: 无

函数种类: 资料处理

内容说明

本函数可将字符串之中的变量值代入，通常用在处理数据库的资料上。参数 code_str 为欲处理的字符串。值的注意的是待处理的字符串要符合 PHP 的字符串格式，同时在结尾处要有分号。使用本函数处理后的字符串会沿续到 PHP 程序结束。

使用范例

<?php
$string = '杯子';
$name = '咖啡';
$str = '这个 $string 中装有 $name.<br>';
echo $str;
eval( "\$str = \"$str\";" );
echo $str;
?>

本例的返回值为

这个 $string 中装有 $name.
这个 杯子 中装有 咖啡.


函数:exec()

程序执行功能函数库

exec

执行外部程序。

语法: string exec(string command, string [array], int [return_var]);

返回值: 字符串

函数种类: 操作系统与环境

内容说明

本函数执行输入 command 的外部程序或外部指令。它的返回字符串只是外部程序执行后返回的最后一行；若需要完整的返回字符串，可以使用 PassThru() 这个函数。

要是参数 array 存在，command 会将 array 加到参数中执行，若不欲 array 被处理，可以在执行 exec() 之前呼叫 unset()。若是 return_var 跟 array 二个参数都存在，则执行 command 之后的状态会填入 return_var 中。

值的注意的是若需要处理使用者输入的资料，而又要防止使用者耍花招破解系统，则可以使用 EscapeShellCmd()。

参考


函数:exit()

杂项函数库

exit

结束 PHP 程序。

语法: void exit(void);

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数直接结束 PHP 程序 (Script)。不需输入参数，亦无返回值。


函数:Exp()

数学运算函数库

Exp

自然对数 e 的次方值。

语法: float exp(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数计算自然对数 (natural logarithm) 的 arg 次方值。

参考


函数:explode()

字符串处理函数库

explode

切开字符串。

语法: array explode(string separator, string string);

返回值: 数组

函数种类: 资料处理

内容说明

本函数将字符串依指定的字符串或字符 separator 切开。将切开后的字符串返回到数组变量中。

使用范例

<?
$pizza = "第一片 第二片 第三片 第四片 第五片 第六片";
$pieces = explode(" ", $pizza);
?>

参考

implode()


函数:extract()

杂项函数库

extract

汇入数组到符号表。

语法: void extract(array var_array, int [extract_type], string [prefix]);

返回值: 无

函数种类: 资料处理

内容说明

本函数用来汇入数组变量到目前使用的符号表之中。参数 var_array 为待汇入的数组变量。参数 extract_type 为输出的类型，内定值为 EXTR_OVERWRITE，见下表

EXTR_OVERWRITE | 遇相同的变量名则取而代之。
EXTR_SKIP | 遇相同的变量名则略过不取代。
EXTR_PREFIX_SAME | 遇相同的变量名则取新变量名称。
EXTR_PREFIX_ALL | 全部取新的变量名称。

参数 prefix 为参数 extract_type 值为 EXTR_PREFIX_SAME 或者 EXTR_PREFIX_ALL 时，用来加在变量名称前的字符串。

使用范例

本例返回值为 红色, 大号, 弧型, 中号，其中的 size 变量不变。

<?
$size = "大号";
$var_array = array("color" => "红色",
"size" => "中号",
"shape" => "弧型");
extract($var_array, EXTR_PREFIX_SAME, "new");
print "$color, $size, $shape, $new_size\n";
?>


函数:fclose()

文件系统函数库

fclose

关闭已打开的文件。

语法: int fclose(int fp);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来关闭已经打开的文件的指针 fp。成功返回 true，失败则返回 false。其中的文件指针必须是有效的，且必须是已经用 fopen() 或 fsockopen() 成功开文件的指针。


函数:FDF_close()

FDF 函数库

FDF_close

关闭 FDF 文件。

语法: boolean pdf_close(int handle);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来关闭一份 FDF 文件。handle 为 FDF 文件的 handle 值。若欲关闭的 handle 值不存在则返回 false 值。

参考

FDF_open()


函数:FDF_create()

FDF 函数库

FDF_create

建立新的 FDF 文件。

语法: int fdf_create(void);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来建立新的 FDF 文件。若无法建立则返回 false 值，成功建立则返回文件的 handle。

参考


函数:FDF_get_file()

FDF 函数库

FDF_get_file

取得 /F 键的值。

语法: string fdf_get_file(int handle);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数取得 FDF 文件 /F 键的值。参数 handle 为开文件的代号。

参考

FDF_set_file()


函数:FDF_get_status()

FDF 函数库

FDF_get_status

取得 /STATUS 键的值。

语法: string fdf_get_status(int handle);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数取得 FDF 文件 /STATUS 键的值。参数 handle 为开文件的代号。

参考

FDF_set_status()


函数:FDF_get_value()

FDF 函数库

FDF_get_value

取得字段的值。

语法: string fdf_get_value(int handle, string fieldname);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数取得 FDF 文件指定字段的值。参数 handle 为开文件的代号。参数 fieldname 为字段名称字符串。

参考

FDF_set_value()


函数:FDF_next_field_name()

FDF 函数库

FDF_next_field_name

下一字段的名称。

语法: string fdf_next_field_name(int handle, string fieldname);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数返回下一个字段的名称。参数 handle 为开文件的代号。参数 fieldname 为指定字段名称字符串。

参考


函数:FDF_open()

FDF 函数库

FDF_open

打开 FDF 文件。

语法: int pdf_open(string filename);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来打开一份 FDF 文件。若参数 filename 为 '.' 则从基本输入 (stdin) 读取资料。

参考

FDF_close()


函数:FDF_save()

FDF 函数库

FDF_save

将 FDF 文件存文件。

语法: boolean pdf_save(string filename);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将 FDF 文件另存新文件。参数 filename 为欲储存的文件名，若值为 "." 表示存到基本输出设备 (stdout)。若无法存文件则返回 false 值。

参考

FDF_close()


函数:FDF_set_ap()

FDF 函数库

FDF_set_ap

配置显示字段。

语法: boolean fdf_set_ap(int handle, string fieldname, int face, string filename, int pagenr);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数配置显示 (appearence) 字段。参数 handle 为开文件的代号。参数 fieldname 为指定字段名称字符串。参数 fase 的值若为 1 则为 FDFNormalAP，为内定值；若为 2 则表 FDFRolloverAP；若为 3 则为 FDFDownAP。


函数:FDF_set_file()

FDF 函数库

FDF_set_file

配置 /F 键。

语法: boolean fdf_set_file(int handle, string filename);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数配置 FDF 文件的 /F 键。参数 handle 为开文件的代号。参数 filename 为欲配置的字符串值。

参考

FDF_get_file()


函数:FDF_set_status()

FDF 函数库

FDF_set_status

配置 /STATUS 键。

语法: boolean fdf_set_status(int handle, string status);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数配置 FDF 文件的 /STATUS 键。参数 handle 为开文件的代号。参数 status 为欲配置的字符串值。

参考

FDF_get_status()


函数:FDF_set_value()

FDF 函数库

FDF_set_value

配置字段的值。

语法: boolean fdf_set_value(int handle, string fieldname, string value, int isName);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数配置 FDF 文件指定字段的值。参数 handle 为开文件的代号。参数 fieldname 为字段名称字符串。参数 value 为欲配置的字段值字符串。参数 isName 为 0 表示为 PDF 字符串，值 1 表示为 PDF 名称。

参考

FDF_get_value()


函数:feof()

文件系统函数库

feof

测试文件指针是否指到文件尾。

语法: int feof(int fp);

返回值: 整数

函数种类: 文件存取

内容说明

本函数测试文件的指针是否指到文件尾 (End of File, EOF)。若是成功或发生错误则返回 true 值，其它情形返回 false 值。其中的文件指针必须是有效的，且必须是已经用 fopen()、popen() 或 fsockopen() 成功开文件的指针。


函数:fgetc()

文件系统函数库

fgetc

取得文件指针所指的字符。

语法: string fgetc(int fp);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数取得文件指针所指的字符，返回字符串类型的字符。指针若在 EOF 则返回 false。其中的文件指针必须是有效的，且必须是已经用 fopen()、popen() 或 fsockopen() 成功开文件的指针。

参考


函数:fgetcsv()

文件系统函数库

fgetcsv

取得文件指针所指行，并解析 CSV 字段。

语法: array fgetcsv(int fp, int length, string [delimiter]);

返回值: 数组

函数种类: 文件存取

内容说明

本函数与 fgets() 的功用类似，不同的地方在于本函数用来解析读取行的 CSV 字段资料，并将其放入数组变量之中。其中的第三个参数 delimiter 若未指定，则使用内定值：逗号。其中的文件指针 fp 必须是有效的，且必须是已经用 fopen()、popen() 或 fsockopen() 成功开文件的指针。而第二个参数 length 的值必须要比 CSV 文件最长一行的字符数还大。本函数若发生错误或者到文件尾 (EOF, end of file)，则会返回 false 值。若遇到空行，则传到数组结构的字符为空字符字段 (null)，而不是当作发生错误的情形。

使用范例

<?
$row=1;
$fp = fopen("mycsv.csv","r");
while ($data = fgetcsv($fp,1000, ",")) {
$num = count($data);
print "<p>字段 $num 在第 $row 行: <br>";
$row++;
for ( $c=0; $c<$num; $c++ ) print $data[$c] . "<br>";
}
fclose($fp);
?>


函数:fgets()

文件系统函数库

fgets

取得文件指针所指的行。

语法: string fgets(int fp, int length);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数取得文件指针所指的行，返回字符串长度为行的长度减一。若发生错误则返回 false。一般常遇到的陷阱是用 C 语言的经验来使用本函数，而 EOF 时的处理方式则和 C 语言的 fgets() 不同。其中的文件指针必须是有效的，且必须是已经用 fopen()、popen() 或 fsockopen() 成功开文件的指针。

使用范例

<?php
$fd = fopen("/tmp/myfile.txt", "r");
while ($buffer = fgets($fd, 4096)) {
echo $buffer;
}
fclose($fd);
?>

参考


函数:fgetss()

文件系统函数库

fgetss

取得文件指针所指的行，并去掉 HTML 语言标记。

语法: string fgetss(int fp, int length);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数除了 fgets() 的功能，并同时去掉取回字符串中的 HTML 语言及 PHP 语法的标记字符串。

参考


函数:file()

文件系统函数库

file

将文件全部读入数组变量中。

语法: array file(string filename);

返回值: 数组

函数种类: 文件存取

内容说明

本函数与 readfile() 类似，不同的地方为本函数将文件全部读出，并输出到数组的变量中，每行都是单独的数组元素。

参考


函数:file_exists()

文件系统函数库

file_exists

检查文件是否存在。

语法: int file_exists(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来测试检查文件是否存在，返回 true 表示文件存在。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:fileatime()

文件系统函数库

fileatime

取得文件最后的存取时间。

语法: int fileatime(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件 filename 的最后存取时间。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:filectime()

文件系统函数库

filectime

取得文件最后的改变时间。

语法: int filectime(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件 filename 的 inode 最后改变时间。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:filegroup()

文件系统函数库

filegroup

取得文件所属的群组。

语法: int filegroup(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件的群组使用者 GID 值。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:fileinode()

文件系统函数库

fileinode

取得文件的 inode 值。

语法: int fileinode(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件的 inode 值。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:filemtime()

文件系统函数库

filemtime

取得文件最后的修改时间。

语法: int filemtime(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件 filename 的最后修改时间。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。

使用范例

以下是 benbatten@home.com (29-Apr-1999) 在 Win95 上的实作范例，例中返回当页 Homepage 的最后修改时间并将 filemtime() 返回的 UNIX 格式的时间字符串转换成 12 小时制的字符串。

(注：由于本例的文件为 __FILE__ 表示目前的文件，其实和使用 getlastmod() 函数有相同的效果。)

<?php
$filemod = filemtime(__FILE__);
$filemodtime = date("F j Y h:i:s A", $filemod);
print("本页最后修改时间: $filemodtime");
?>


函数:fileowner()

文件系统函数库

fileowner

取得文件的拥有者。

语法: int fileowner(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件拥有者的 UID 值。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:fileperms()

文件系统函数库

fileperms

取得文件的权限配置。

语法: int fileperms(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件的权限配置值。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:filepro()

filePro 数据库函数库

filepro

读取 FilePro Map 文件。

语法: boolean filepro(string directory);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来读取 FilePro 数据库的 Map 文件。


函数:filepro_fieldcount()

filePro 数据库函数库

filepro_fieldcount

取得字段数目。

语法: int filepro_fieldcount(void);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 FilePro 数据库的字段 (field) 数目。


函数:filepro_fieldname()

filePro 数据库函数库

filepro_fieldname

取得字段名称。

语法: string filepro_fieldname(int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来读取 FilePro 数据库中指定字段的字段名称。参数 field_number 为字段的序号，为正整数类型。


函数:filepro_fieldtype()

filePro 数据库函数库

filepro_fieldtype

取得字段类型。

语法: string filepro_fieldtype(int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来读取 FilePro 数据库中指定字段的字段类型。参数 field_number 为字段的序号，为正整数类型。


函数:filepro_fieldwidth()

filePro 数据库函数库

filepro_fieldwidth

取得字段宽度。

语法: int filepro_fieldwidth(int field_number);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来读取 FilePro 数据库中指定字段的字段宽度。参数 field_number 为字段的序号，为正整数类型。


函数:filepro_retrieve()

filePro 数据库函数库

filepro_retrieve

取得指定储存格资料。

语法: string filepro_retrieve(int row_number, int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来读取 FilePro 数据库中指定储存格的资料。参数 row_number 及 field_number 分别为列数及栏数，均为正整数类型。


函数:filepro_rowcount()

filePro 数据库函数库

filepro_rowcount

取得列数目。

语法: int filepro_rowcount(void);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 FilePro 数据库的列 (row) 数目。


函数:filesize()

文件系统函数库

filesize

获得文件的大小。

语法: int filesize(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回指定文件的文件大小。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:filetype()

文件系统函数库

filetype

获得文件的类型。

语法: string filetype(string filename);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数返回指定文件的文件类型。可能的返回类型有 fifo、char、dir、block、link、file 及 unknown 等等。返回 false 表示发生错误。返回值放在快取缓冲区中，可以参考 clearstatcache()。


函数:flock()

文件系统函数库

flock

锁住文件。

语法: boolean flock(int fp, int operation);

返回值: 布尔值

函数种类: 文件存取

内容说明

本函数用来锁住文件，使别的行程无法存取。传入的参数 fp 为文件的指针。参数 operation 的值为下列的数字之一：1 表示配置锁住文件可以允许别的行程读取；2 表示只有该行程可以写入文件；3 表示读写均锁住；4 则不锁住区块 (block)。而本函数无论在 UNIX 或是 Windows 系列中的锁住效果都相近。执行成功则返回 true 值，否则返回 false 值。


函数:Floor()

数学运算函数库

Floor

计算小于指定数的最大整数。

语法: int floor(float number);

返回值: 整数

函数种类: 数学运算

内容说明

本函数用来计算比浮点参数 number 小的最大整数。

使用范例

本例返回值为 3。

<?php
$lastint=floor(3.14);
echo $lastint;
?>

参考


函数:flush()

字符串处理函数库

flush

清出输出缓冲区。

语法: void flush(void);

返回值: 无

函数种类: 资料处理

内容说明

本函数无输入亦无输出。将输出缓冲区的资料送出，并清出。


函数:fopen()

文件系统函数库

fopen

打开文件或者 URL。

语法: int fopen(string filename, string mode);

返回值: 整数

函数种类: 文件存取

内容说明

说明: 本函数可用来打开本地或者远端的文件。若参数 filename 为 "http://......" 则本函数利用 HTTP 1.0 协议与服务器连接，文件指针则指到服务器返回文件的起始处。若参数 filename 为 "ftp://......." 则本函数会与服务器连接，文件指针指到指定的文件处。若 FTP 服务器没有支持被动模式 (passive mode ftp) 则返回失败值。打开的 FTP 文件可以是读取或写入其中之一，但不能读或写二种同时使用。其它的情形，本函数打开本地的文件，文件的指针则指向打开的文件。若开文件失败，则返回 false 值。

字符串参数 mode 可以是下列的情形：

  • 'r' 开文件方式为只读，文件指针指到开始处。
  • 'r+' 开文件方式为可读写，文件指针指到开始处。
  • 'w' 开文件方式为写入，文件指针指到开始处，并将原文件的长度设为 0。若文件不存在，则建立新文件。
  • 'w+' 开文件方式为可读写，文件指针指到开始处，并将原文件的长度设为 0。若文件不存在，则建立新文件。
  • 'a' 开文件方式为写入，文件指针指到文件最后。若文件不存在，则建立新文件。
  • 'a+' 开文件方式为可读写，文件指针指到文件最后。若文件不存在，则建立新文件。
  • 'b' 若操作系统的文字及二进位文件不同，则可以用此参数，UNIX 系统不需要使用本参数。

使用范例

第一行为 UNIX 系统使用；第二行是 Windows 系列系统的用法；第三、四行则为 URL 的使用范例。

<?
$fp = fopen("/home/rasmus/file.txt", "r");
$fp = fopen("c:\\mydata\\info.txt", "r");
$fp = fopen("http://www.php.net/", "r");
$fp = fopen("ftp://user:password@my.com/", "w");
?>

参考


函数:fpassthru()

文件系统函数库

fpassthru

输出所有剩余资料。

语法: int fpassthru(int fp);

返回值: 整数

函数种类: 文件存取

内容说明

本函数读取文件 fp 直到文件尾 (End of file, EOF)，并将资料输出到标准输出 (standard output)。若有错误发生，则返回 false 值。而文件 fp 必须由 fopen()、popen() 或 fsockopen() 打开成功的指针。当本函数读完文件，会自动将文件关闭，即 fp 变无效。如果只是要将文件输出到标准输出，可以使用 readfile() 会比用 fopen() 更好。

参考


函数:fputs()

文件系统函数库

fputs

写到文件指针。

语法: int fputs(int fp, string str, int [length]);

返回值: 整数

函数种类: 文件存取

内容说明

本函数即 fwrite()，只是一个别名。用来将字符串 str 写到文件指针。


函数:fread()

文件系统函数库

fread

位组的方式读取文件。

语法: string fread(int fp, int length);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数读到指定长度的位组或到文件尾 EOF。

使用范例

<?php
$filename = "/usr/local/myfile.txt";
$fd = fopen( $filename, "r" );
$contents = fread($fd, filesize($filename));
fclose( $fd );
?>

参考


函数:FrenchToJD()

历法函数库

FrenchToJD

将法国共和历法转换成为凯撒日计数。

语法: int frenchtojd(int month, int day, int year);

返回值: 整数

函数种类: 时间日期

内容说明

函数只能转换法国共和历元年到十四年，也就是格里高里历的 1792 年 9 月 22 日至 1806 年 9 月 22 日。


函数:fseek()

文件系统函数库

fseek

移动文件指针。

语法: int fseek(int fp, int offset);

返回值: 整数

函数种类: 文件存取

内容说明

本函数将文件 fp 的指针移到指定的偏移位 (offset) 上。使用本函数就像 C 语言中的 fseek(fp, offset, SEEK_SET) 函数。成功则返回 0，失败则返回 -1 值。当 fp 由 fopen() 打开 "http://...." 或是 "ftp://...." 等 URL 文件时，本函数无法作用。

参考


函数:fsockopen()

网络函数库

fsockopen

打开网络的 Socket 链接。

语法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

返回值: 整数

函数种类: 网络系统

内容说明

目前这个函数提供二个 Socket 资料流界面，分别为 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。当在 Internet 情形下使用时，参数 hostname 及 port 分别代表网址及埠号。在 UNIX 情形可做 IPC，hostname 参数表示到 socket 的路径，port 配置为 0。可省略的 timeout 选项表示多久没有连上就中断。在使用本函数之后会返回文件指针，供文件函数使用，包括 fgets()、fgetss()、fputs()、fclose() 与 feof()。参数 errno 及 errstr 也是可省略的，主要当做错误处理使用。使用本函数，会使用搁置模式 (blocking mode) 处理，可用 set_socket_blocking() 转换成无搁置模式。

使用范例

本例用来模拟成 HTTP 连接。
<?php
$fp = fsockopen("php.wilson.gs", 80, &$errno, &$errstr, 10);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs($fp,"GET / HTTP/1.0\nHost: php.wilson.gs\n\n");
while(!feof($fp)) {
echo fgets($fp,128);
}
fclose($fp);
}
?>

参考

pfsockopen()


函数:ftell()

文件系统函数库

ftell

取得文件读写指针位置。

语法: int ftell(int fp);

返回值: 整数

函数种类: 文件存取

内容说明

本函数返回文件 fp 的指针偏移位 (offset) 值。当发生错误时，返回 false 值。文件指针 fp 必须是有效的，且使用 fopen() 或者 popen() 二个函数打开方可作用。

参考


函数:ftp_cdup()

FTP 文件传输函数库

ftp_cdup

回上层目录。

语法: boolean ftp_cdup(int ftp_stream);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来回到上层目录，也就是目前目录的父目录。参数 ftp_stream 为 FTP 的连接代码。成功则返回 true 值。


函数:ftp_chdir()

FTP 文件传输函数库

ftp_chdir

改变路径。

语法: boolean ftp_chdir(int ftp_stream, string directory);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来改变路径。参数 ftp_stream 为 FTP 的连接代码。参数 directory 为欲前往的目录。成功则返回 true 值，失败则返回 false 值。


函数:ftp_connect()

FTP 文件传输函数库

ftp_connect

打开 FTP 链接。

语法: int ftp_connect(string host, int [port]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可打开 FTP 服务器的链接。参数 host 为 FTP 服务器的网址。参数 port 通常省略，若 FTP 服务器的埠号 (port) 不是 21 时才需要加本参数。若无错误则返回连接代码，失败则返回 false 值。

参考

ftp_quit()


函数:ftp_delete()

FTP 文件传输函数库

ftp_delete

将文件删除。

语法: boolean ftp_delete(int ftp_stream, string remote_file);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数可将远端 FTP 服务器的文件删除，若是权限不符则无法删除。参数 ftp_stream 为 FTP 的连接代码。参数 remote_file 为欲删除的文件名。成功则返回 true 值，失败则返回 false 值。


函数:ftp_fget()

FTP 文件传输函数库

ftp_fget

下载文件，并存在已开的文件中。

语法: boolean ftp_fget(int ftp_stream, int fp, string remote_file, int mode);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来下载指定的文件。参数 ftp_stream 为 FTP 的连接代码。参数 fp 为本地端的已开文件的文件指针。参数 remote_file 为欲下载的文件名。参数 mode 的值有 FTP_ASCII 及 FTP_BINARY 二种，分别表示文字档宁或者是二进位文件。成功则返回 true 值，失败则返回 false 值。


函数:ftp_fput()

FTP 文件传输函数库

ftp_fput

上传已打开文件。

语法: boolean ftp_fput(int ftp_stream, string remote_file, int fp, int mode);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来上传指定的文件。参数 ftp_stream 为 FTP 的连接代码。参数 remote_file 为欲存在远端的文件名。参数 fp 为欲上传的已开文件文件指针。参数 mode 的值有 FTP_ASCII 及 FTP_BINARY 二种，分别表示文字档宁或者是二进位文件。成功则返回 true 值，失败则返回 false 值。


函数:ftp_get()

输入待寻字符串
<?php
require( "http://php.wilson.gs"); // 回首页
echo "http://php.wilson.gs/bible/function.php : 函数:ftp_get()";

 函数:ftp_get()

FTP 文件传输函数库

ftp_get

下载文件。

语法: boolean ftp_get(int ftp_stream, string local_file, string remote_file, int mode);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来下载指定的文件。参数 ftp_stream 为 FTP 的连接代码。参数 local_file 为欲存成本地端的文件名。参数 remote_file 为欲下载的文件名。参数 mode 的值有 FTP_ASCII 及 FTP_BINARY 二种，分别表示文字档宁或者是二进位文件。成功则返回 true 值，失败则返回 false 值。


函数:ftp_login()

FTP 文件传输函数库

ftp_login

登入 FTP 服务器。

语法: boolean ftp_login(int ftp_stream, string username, string password);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数可登入已链接的 FTP 服务器。参数 ftp_stream 为 FTP 的连接代码。参数 username 及 password 分别为服务器的使用者帐号及密码，通常 anonymous 为公开的使用帐号，密码则为 Email。成功则返回 true 值。


函数:ftp_mdtm()

FTP 文件传输函数库

ftp_mdtm

获得指定文件的最后修改时间。

语法: int ftp_mdtm(int ftp_stream, string remote_file);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来获取 FTP 服务器上指定文件的最后修改时间。参数 ftp_stream 为 FTP 的连接代码。参数 remote_file 为欲获取修改时间的文件名。返回值为 UNIX 的时间格式 (timestamp)，失败则返回 -1 值。


函数:ftp_mkdir()

FTP 文件传输函数库

ftp_mkdir

建新目录。

语法: string ftp_mkdir(int ftp_stream, string directory);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来建立新的目录。参数 ftp_stream 为 FTP 的连接代码。参数 directory 为欲建立的新目录。成功则返回已建立的目录名，失败则返回 false 值。


函数:ftp_nlist()

FTP 文件传输函数库

ftp_nlist

列出指定目录中所有文件。

语法: array ftp_nlist(int ftp_stream, string directory);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来列出指定路径中的所有文件名称。参数 ftp_stream 为 FTP 的连接代码。参数 directory 为指定的目录。成功则返回文件名称的数组，失败则返回 false 值。


函数:ftp_pasv()

FTP 文件传输函数库

ftp_pasv

切换主被动传输模式。

语法: boolean ftp_systype(int ftp_stream);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数可以切换成主动传输或者被动传输模式，也就等于对 FTP 服务器下 passive 或 pass 指令。参数 ftp_stream 为 FTP 的连接代码。成功则返回 true 值，失败则返回 false 值。


函数:ftp_put()

FTP 文件传输函数库

ftp_put

上传文件。

语法: boolean ftp_put(int ftp_stream, string remote_file, string local_file, int mode);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来上传指定的文件。参数 ftp_stream 为 FTP 的连接代码。参数 remote_file 为欲存在远端的文件名。参数 local_file 为欲上传文件的文件名。参数 mode 的值有 FTP_ASCII 及 FTP_BINARY 二种，分别表示文字档宁或者是二进位文件。成功则返回 true 值，失败则返回 false 值。


函数:ftp_pwd()

FTP 文件传输函数库

ftp_pwd

取得目前所在路径。

语法: string ftp_pwd(int ftp_stream);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得目前在 FTP 服务器中的路径。参数 ftp_stream 为 FTP 的连接代码。若有错误则返回 NULL 值。


函数:ftp_quit()

FTP 文件传输函数库

ftp_quit

关闭 FTP 连接。

语法: boolean ftp_quit(int ftp_stream);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来将远端 FTP 服务器连接关闭。参数 ftp_stream 为 FTP 的连接代码。成功则返回 true 值，失败则返回 false 值。

参考

ftp_connect()

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:ftp_rawlist()

FTP 文件传输函数库

ftp_rawlist

详细列出指定目录中所有文件。

语法: array ftp_rawlist(int ftp_stream, string directory);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可详细列出指定路径中的所有文件名称。参数 ftp_stream 为 FTP 的连接代码。参数 directory 为指定的目录。成功则返回文件名称的数组，失败则返回 false 值。


函数:ftp_rename()

FTP 文件传输函数库

ftp_rename

将文件改名。

语法: boolean ftp_rename(int ftp_stream, string from, string to);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数可将远端 FTP 服务器的文件改名字，值的注意的是权限不符时无法改动。参数 ftp_stream 为 FTP 的连接代码。参数 from 为原来的文件名。参数 to 为欲改的新文件名。成功则返回 true 值，失败则返回 false 值。


函数:ftp_rmdir()

FTP 文件传输函数库

ftp_rmdir

删除目录。

语法: boolean ftp_chdir(int ftp_stream, string directory);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来删除空目录。参数 ftp_stream 为 FTP 的连接代码。参数 directory 为欲删除的目录。成功则返回 true 值，失败则返回 false 值。


函数:ftp_size()

FTP 文件传输函数库

ftp_size

获得指定文件的大小。

语法: int ftp_size(int ftp_stream, string remote_file);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来获取 FTP 服务器上指定文件的大小。参数 ftp_stream 为 FTP 的连接代码。参数 remote_file 为欲获取大小文件名。返回值为文件大小，失败则返回 -1 值。


函数:ftp_systype()

FTP 文件传输函数库

ftp_systype

显示服务器系统。

语法: string ftp_systype(int ftp_stream);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可显示远端 FTP 服务器的系统，也就等于对 FTP 服务器下 system 或 syst 指令。参数 ftp_stream 为 FTP 的连接代码。成功则返回字符串，如: "215 UNIX Type: L8"，失败则返回 false 值。


函数:function_exists()

杂项函数库

function_exists

检查函数是否已定义。

语法: int function_exists(string function_name);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数用来检查指定的函数是否已经定义。参数 function_name 为待检查的函数名称。若已定义指定的函数则返回 true 值，其它情形均返回 false 值。


函数:fwrite()

文件系统函数库

fwrite

二进位位方式写入文件。

语法: int fwrite(int fp, string string, int [length]);

返回值: 整数

函数种类: 文件存取

内容说明

本函数将字符串 string 写入文件资料流的指针 fp 上。若有指定长度 length，则会写入指定长度字符串，或是写到字符串结束。治募注意的是若指定了长度，则在 PHP 环境配置值 magic_quotes_runtime 的配置将被忽略，同时字符串中的斜线不会被删除。

参考


函数:get_cfg_var()

PHP 选项及相关信息函数库

get_cfg_var

取得 PHP 的配置选项值。

语法: string get_cfg_var(string varname);

返回值: 字符串

函数种类: PHP 系统功能

内容说明

若正确取得目前 PHP 配置选项 varname，则返回变量值。失败则返回 false。


函数:get_current_user()

PHP 选项及相关信息函数库

get_current_user

取得 PHP 行程的拥有者名称。

语法: string get_current_user(void);

返回值: 字符串

函数种类: PHP 系统功能

内容说明

本函数用来取得 PHP 程序行程的拥有者名称。

参考


函数:get_magic_quotes_gpc()

PHP 选项及相关信息函数库

get_magic_quotes_gpc

取得 PHP 环境变量 magic_quotes_gpc 的值。

语法: long get_magic_quotes_gpc(void);

返回值: 长整数

函数种类: PHP 系统功能

内容说明

本函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能；返回 1 表示本功能打开。当 magic_quotes_gpc 打开时，所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动转为含有反斜线的溢出字符。

参考


函数:get_magic_quotes_runtime()

PHP 选项及相关信息函数库

get_magic_quotes_runtime

取得 PHP 环境变量 magic_quotes_runtime 的值。

语法: long get_magic_quotes_runtime(void);

返回值: 长整数

函数种类: PHP 系统功能

内容说明

本函数取得 PHP 环境配置的变量 magic_quotes_runtime 值。返回 0 表示关闭本功能；返回 1 表示本功能打开。若 magic_quotes_runtime 打开时，所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。

参考


函数:get_meta_tags()

字符串处理函数库

get_meta_tags

抽出文件所有 meta 标记的资料。

语法: array get_meta_tags(string filename, int [use_include_path]);

返回值: 数组

函数种类: 资料处理

内容说明

本函数将 homepage 中的所有 <meta ......> 标记的资料取出并放置数组变量返回。例如

  <html>
  <head>
  <meta name="author" content="彭武兴">
  <meta name="title" content="PHP BIBLE">
  <title>PHP BIBLE</title>
  </head><!-- 本函数处理只到这儿结束 -->

本函数找出 meta 标记，name 属性的字符串为数组索引，而 content 属性字符串则为数组的内容资料了。治募注意的是本函数为 PHP 原生函数，在 UNIX 系列平台上无法直接处理麦金塔的文件格式，因为换行字符不同。blake@mediaone.net 指出 (07-Jun-1999)，参数 filename 也可以是 URL，函数将抽出远端服务器的文件 meta 标记。而函数在处理时，遇到 </head> 标记结束，要是 <meta ....> 标记放在 </head> 后将无法处理。


函数:getallheaders()

apache服务器专用函数库

getallheaders

获得所有 HTTP 变量值。

语法: array getallheaders(void);

返回值: 数组

函数种类: PHP 系统功能

内容说明

使用本项功能时不需代入任何参数值，返回的是所有 HTTP 变量值，并使用组合的数组返回。

使用范例

下例列出所有的 HTTP 变量

<?php
$headers = getallheaders();
while (list($header, $value) = each($headers)) {
echo "$header: $value<br>\n";
}
?>

备注: 这个函数只有 PHP 以apache服务器的模块 (module) 方式执行时方有效。


函数:getdate()

日期与时间函数库

getdate

获得时间及日期信息。

语法: array getdate(int timestamp);

返回值: 数组

函数种类: 时间日期

内容说明

返回数组的元素包括下列的项目：

  • "seconds" - 秒
  • "minutes" - 分
  • "hours" - 时
  • "mday" - 当月的第几天
  • "wday" - 当周的第几天数字
  • "mon" - 月份数字
  • "year" - 年，数字
  • "yday" - 当年的第几天数字; 如: "299"
  • "weekday" - 星期几全名; 如: "Friday"
  • "month" - 月份全名; 如: "January"


函数:getenv()

PHP 选项及相关信息函数库

getenv

取得系统的环境变量

语法: string getenv(string varname);

返回值: 字符串

函数种类: PHP 系统功能

内容说明

若正确取得环境变量 varname，则返回变量值。失败则返回 false。

使用范例

下例可以取得用户浏览器所在机器的网址

<?
$ip = getenv("REMOTE_ADDR");
?>


函数:gethostbyaddr()

网络函数库

gethostbyaddr

返回机器名称。

语法: string gethostbyaddr(string ip_address);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可返回某个 IP 网址的机器名称 (Domain Name)。若执行失败，则返回原来的 IP 网址。

使用范例

下例的返回值为 dns.biglobe.net.tw

<?
echo gethostbyaddr("202.166.255.97");
?>

参考

gethostbyname()


函数:gethostbyname()

网络函数库

gethostbyname

返回 IP 网址。

语法: string gethostbyname(string hostname);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可返回某个机器名称 (Domain Name) 的 IP 网址 (IP Address)。若执行失败，则返回原来的机器名称。

使用范例

下例的返回值为 140.137.33.246

<?
echo gethostbyaddr("www.hkcc.pccu.edu.tw");
?>

参考

gethostbyaddr()


函数:gethostbynamel()

网络函数库

gethostbynamel

返回机器名称的所有 IP。

语法: array gethostbynamel(string hostname);

返回值: 数组

函数种类: 网络系统

内容说明

若一个机器名称有很多个 IP 位址 (例如一些 FTP 或是 WWW 网站)，使用本函数可以取得全部的 IP 位址，返回到数组变量中。

使用范例

本范例列出所有网景 FTP 站的 IP。(注：网景的 FTP 站是一个 Domain Name 却对映到许多 IP Address 的网站。)

<?php
$netscapeftp=gethostbynamel("ftp.netscape.com");
echo "Netscape FTP 网站 IP Address:<ol type=1>";
for ($i=0; $i<count($netscapeftp); $i++) {
echo "<li>".$netscapeftp[$i];
}
echo "</ol>";
?>

参考


函数:GetImageSize()

图形处理函数库

GetImageSize

取得图片的长宽。

语法: array getimagesize(string filename, array [imageinfo]);

返回值: 数组

函数种类: 图形处理

内容说明

本函数可用来取得 GIF、JPEG 及 PNG 三种 WWW 上图片的高与宽，不需要安装 GD library 就可以使用本函数。返回的数组有四个元素。返回数组的第一个元素 (索引值 0) 是图片的高度，单位是像素 (pixel)。第二个元素 (索引值 1) 是图片的宽度。第三个元素 (索引值 2) 是图片的文件格式，其值 1 为 GIF 格式、 2 为 JPEG/JPG 格式、3 为 PNG 格式。第四个元素 (索引值 3) 为图片的高与宽字符串，height=xxx width=yyy。可省略的参数 imageinfo 用来取得一些图片的相关信息，例如 IPTC (http://www.xe.net/iptc) 的 APP13 标记，就可以加在图片中，可利用 iptcparse() 来解析。

使用范例

<?php
function MyImg($imgfile) {
$size = GetImageSize($imgfile);
echo "<img src=\"$imgfile\" $size[3]>";
}
MyImg("img/img1.gif");
MyImg("img/img2.png");
?>


函数:getlastmod()

PHP 选项及相关信息函数库

getlastmod

返回该网页的最后修改时间。

语法: int getlastmod(void);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数返回让该函数所网页的最后修改时间，返回的是 UNIX 的时间戳记 (timestamp) 格式，可用 4.7.2 date() 函数将返回值格式化。若执行失败则返回 false 值。

使用范例

下例返回值类似 '本页最后修改时间: June 19 1999 20:43:59.'

<?php
echo "本页最后修改时间: ".date("F d Y H:i:s.", getlastmod());
?>

参考


函数:getmxrr()

网络函数库

getmxrr

取得指定网址 DNS 记录之 MX 字段。

语法: int getmxrr(string hostname, array mxhosts, array [weight]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来检查 DNS 字段纪录中的 MX 字段，也就是电子邮件服务器 Mail eXchanger 字段。若找到了指定网址 DNS 纪录的 MX 字段，返回 true；若未找到指定的 DNS MX 字段或是有错误均会返回 false。指定网址的所有 MX 字段纪录的机器都会传入数组参数 mxhosts 中。若有指定数组参数 weight，则同时返回 MX 机器的优先顺序。

参考


函数:getmyinode()

PHP 选项及相关信息函数库

getmyinode

返回该网页的 inode 值。

语法: int getmyinode(void);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数返回该网页的 inode 值。若执行失败则返回 false 值。

参考


函数:getmypid()

PHP 选项及相关信息函数库

getmypid

返回 PHP 的行程代号。

语法: int getmypid(void);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数返回 PHP 的行程代号值 (PID)。若执行失败则返回 false 值。当 PHP 以 Apache 模块存在时，返回的 PID 值不见得是正确的。

参考


函数:getmyuid()

PHP 选项及相关信息函数库

getmyuid

返回 PHP 的用户代码。

语法: int getmyuid(void);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数返回 PHP 的用户代码 (UID)。若执行失败则返回 false 值。

参考


函数:getrandmax()

数学运算函数库

getrandmax

乱数的最大值。

语法: int getrandmax(void);

返回值: 整数

函数种类: 数学运算

内容说明

本函数计算乱数函数 rand() 可能取得的取得的最大乱数值。本函数不需参数。

参考


函数:getrusage()

PHP 选项及相关信息函数库

getrusage

返回系统资源使用率。

语法: array getrusage(int [who]);

返回值: 数组

函数种类: PHP 系统功能

内容说明

本函数使用 UNIX 的系统呼叫 getrusage(2)。返回的信息以数组的方式返回。若参数 who 为 1，本函数会呼叫 RUSAGE_CHILDREN。更进一步的信息可以参考 UNIX 函数库方面的文件。

使用范例

<?php
$dat = getrusage();
echo $dat["ru_nswap"]; // Swaps 数
echo $dat["ru_majflt"]; // 分页数
echo $dat["ru_utime.tv_sec"]; // 使用时间 (秒)
echo $dat["ru_utime.tv_usec"]; // 使用时间 (毫秒)
?>


函数:gettimeofday()

日期与时间函数库

gettimeofday

取得目前时间。

语法: array gettimeofday(void);

返回值: 数组

函数种类: 时间日期

内容说明

返回数组的元素包括下列的项目：

  • "sec" - 秒
  • "usec" - 百万分之一秒
  • "minuteswest" - 格林威治时间的分
  • "dsttime" - 目的的时区


函数:gettype()

变量处理函数库

gettype

取得变量的类型。

语法: string gettype(mixed var);

返回值: 字符串

函数种类: PHP 系统功能

内容说明

本函数用来取得变量的类型。返回的类型字符串可能为下列字符串其中之一：integer、double、string、array、object、unknown type。

参考

settype()


函数:gmdate()

日期与时间函数库

gmdate

取得目前与 GMT 差后的时间。

语法: string gmdate(string format, int timestamp);

返回值: 字符串

函数种类: 时间日期

内容说明

本函数与 date() 函数相似，不同的是本函数返回与格林威治标准时间 (Greenwich Mean Time, GMT) 时间差后的时间。

使用范例

<?php
echo date( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
echo gmdate( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
?>

若执行本范例的机器在芬兰 (Finland, GMT +0200)，返回的结果为:
Jan 01 1998 00:00:00
Dec 31 1997 22:00:00

参考


函数:gmmktime()

日期与时间函数库

gmmktime

取得 UNIX 时间戳记的格林威治时间。

语法: int gmmktime(int hour, int minute, int second, int month, int day, int year);

返回值: 整数

函数种类: 时间日期

内容说明

输入一个时间，则返回 UNIX 的格林威治时间戳记的长整数。


函数:GregorianToJD()

历法函数库

GregorianToJD

将格里高里历法转换成为凯撒日计数。

语法: int gregoriantojd(int month, int day, int year);

返回值: 整数

函数种类: 时间日期

内容说明

有效的范围为格里高里历法公元前 4714 年至公元 9999 年。这套软件能计算到公元前 4714 年，但这是不太有意义的。格里高里历在 1582 年 10 月 15 日施行，但一些欧洲国家到很久后才实行，如英国在 1752 年实行、苏联在 1918 年施行、希腊在 1923 年实行。大部份的欧洲国家优先使用凯撒历法，再次才是格里高里历法。

使用范例

<?php
$jd = GregorianToJD(10,11,1970);
echo("$jd\n");
$gregorian = JDToGregorian($jd);
echo("$gregorian\n");
?>


函数:gzclose()

压缩文件函数库

gzclose

关闭压缩文件。

语法: boolean gzclose(int zp);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将已打开的压缩文件关闭。参数 zp 为压缩文件的指针代码。成功则返回 true 值。

参考

gzopen()


函数:gzeof()

压缩文件函数库

gzeof

判断是否在压缩文件尾。

语法: boolean gzeof(int zp);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来判断目前打开的压缩文件指针是否指到文件尾 (EOF, End OF File)。参数 zp 为压缩文件的指针代码。在文件尾则返回 true 值。


函数:gzfile()

压缩文件函数库

gzfile

读压缩文件到数组中。

语法: array gzfile(string filename);

返回值: 数组

函数种类: 特殊文件格式

内容说明

本函数将压缩文件读出并解压缩至数组变量中。参数 filename 为文件名称。


函数:gzgetc()

压缩文件函数库

gzgetc

读压缩文件中的字符。

语法: string gzgetc(int zp);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数将压缩文件解压缩并取出一个字符。参数 gz 为压缩文件打开代码。若至文件尾则会返回 false。


函数:gzgets()

压缩文件函数库

gzgets

读压缩文件中的字符串。

语法: string gzgets(int zp, int length);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数将压缩文件解压缩并取出指定长度的字符串。参数 gz 为压缩文件打开代码。参数 length 为指定字符串长度加一，意即读出的字符串长度为 length-1。若至文件尾或至行尾即行停止，因此本函数通常用来读取一行。


函数:gzgetss()

压缩文件函数库

gzgetss

读压缩文件中的字符串，并去掉 HTML 指令。

语法: string gzgetss(int zp, int length);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数将压缩文件解压缩并取出指定长度的字符串，并将字符串中的 HTML 或 PHP 指令去掉，返回纯文字。参数 gz 为压缩文件打开代码。参数 length 为指定字符串长度加一，意即读出的字符串长度为 length-1。若至文件尾或至行尾即行停止，因此本函数通常用来读取一行。


函数:gzopen()

压缩文件函数库

gzopen

打开压缩文件。

语法: int gzopen(string filename, string mode);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来打开压缩文件。参数 filename 为文件名称。参数 mode 为开文件的状态。若有失败则返回 false 值。

使用范例

下面为部份程序

<?php
$fp=gzopen("/tmp/gzfile.gz", "r");
?>

参考

gzclose()


函数:gzpassthru()

压缩文件函数库

gzpassthru

解压缩指针后全部资料。

语法: boolean gzpassthru(int zp);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将已打开压缩文件文件指针后的资料全部解压缩，并输出至标准输出装置 (stdout)。参数 gz 为开文件的代码。若有失败则返回 false 值。


函数:gzputs()

压缩文件函数库

gzputs

资料写入压缩文件。

语法: boolean gzputs(int zp, string str, int [length]);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数其实就是 gzwrite()。参数 gz 为开文件的代码。参数 str 为欲写入的字符串。参数 length 可省略，为指定长度。若有失败则返回 false 值。


函数:gzread()

压缩文件函数库

gzread

压缩文件读出指定长度字符串。

语法: string gzread(int zp, int length);

返回值: 字符串

函数种类: 特殊文件格式

内容说明

本函数用来读取指定长度的字符串。参数 gz 为开文件的代码。参数 length 为指定长度。

使用范例

<?php
$filename = "/temp/sosofile.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>


函数:gzrewind()

压缩文件函数库

gzrewind

重设压缩文件指针。

语法: boolean gzrewind(int zp);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将重设压缩文件的文件操作指针到文件头处。参数 zp 为开文件代码。


函数:gzseek()

压缩文件函数库

gzseek

设压缩文件指针至指定处。

语法: int gzseek(int zp, int offset);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数将重设压缩文件的文件操作指针到指定的位处。参数 zp 为开文件代码。参数 offset 为第几个位。成功则返回 0，失败返回 -1。


函数:gztell()

压缩文件函数库

gztell

取得压缩文件指针处。

语法: int gztell(int zp);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来取得压缩文件的文件操作指针在某位处。参数 zp 为开文件代码。

使用范例

<?php
$exfile=gzopen("/tmp/haha.gz", "r");
$aline=gzgets($exfile, 80);
print("现在文件指针在第".gztell($exfile)."个位");
gzclose($exfile);
?>


函数:gzwrite()

压缩文件函数库

gzwrite

资料写入压缩文件。

语法: boolean gzwrite(int zp, string string, int [length]);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将资料写入指定的压缩文件中。参数 gz 为开文件的代码。参数 str 为欲写入的字符串。参数 length 可省略，为指定长度。若有失败则返回 false 值。


函数:header()

HTTP 相关函数库

header

送出 HTTP 协议的标头到浏览器

语法: int header(string string);

返回值: 整数

函数种类: 网络系统

内容说明

标头 (header) 是服务器以 HTTP 协议传 HTML 资料到浏览器前所送出的字符串，在标头与 HTML 文件之间尚需空一行分隔。有关 HTTP 的详细说明，可以参考坊间的相关书籍或更详细的 RFC 2068 官方文件(http://www.w3.org/Protocols/rfc2068/rfc2068)。在 PHP 中送回 HTML 资料前，需先传完所有的标头。

注意: 传统的标头一定包含下面三种标头之一，并只能出现一次。

  • Content-Type: xxxx/yyyy
  • Location: xxxx:yyyy/zzzz
  • Status: nnn xxxxxx

在新的多型标头规格 (Multipart MIME) 方可以出现二次以上。

使用范例

范例一: 本例用来重导用户到 PHP 的官方网站。
<?php
Header("Location: http://www.php.net");
exit;
?>

范例二: 欲让用户每次都能得到最新的资料，而不是 Proxy 或 cache 中的资料，可以使用下列的标头
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

范例三: 让用户的浏览器出现找不到文件的信息。
<?php
header("Status: 404 Not Found");
?>

范例四: bill@evil.inetarena.com (28-Apr-1999) 提供让用户下载文件的范例。
header("Content-type: application/x-gzip");
header("Content-Disposition: attachment; filename=some-file.tar.gz");
header("Content-Description: PHP3 Generated Data");


函数:HexDec()

数学运算函数库

HexDec

十六进位转十进位。

语法: int hexdec(string hex_string);

返回值: 整数

函数种类: 数学运算

内容说明

本函数将十六进位字符串转成十进位数字。由于 PHP 使用 32 位有正负号整数计算，能处理的最大十六进位数字为 7fffffff，也就是十进位数字的 2147483647。

参考

DecHex()


函数:htmlentities()

字符串处理函数库

htmlentities

将所有的字符都转成 HTML 字符串。

语法: string htmlentities(string string);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数有点像 htmlspecialchars() 函数，但本函数会将所有 string 的字符都转成 HTML 的特殊字集字符串。不过在转换后阅读网页源代码的方面，会有很多困扰，尤其是网页源代码的中文字会变得不知所云，浏览器上看到的还是正常的。


函数:htmlspecialchars()

字符串处理函数库

htmlspecialchars

将特殊字符转成 HTML 格式。

语法: string htmlspecialchars(string string);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将特殊字符转成 HTML 的字符串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。

  • & (和) 转成 &amp;
  • " (双引号) 转成 &quot;
  • < (小于) 转成 &lt;
  • > (大于) 转成 &gt;

此函数只转换上面的特殊字符，并不会全部转换成 HTML 所定的 ASCII 转换。

使用范例

这是 aulbach@unter.franken.de (27-Jan-1999) 所提供的范例

<FORM ACTION=bla>
<H2>Restaurant Description<H2>
Name of restaurant:
<INPUT TYPE=text NAME="restname" VALUE="<?
echo HTMLSpecialChars($restname); ?>">
<!-- 变量 $restname 是酱子的 $restname="\"The White Horse\""; -->
<BR>
输入描述 (若您会 HTML，可直接使用): <BR>
<TEXTAREA NAME="descript"><?
echo HTMLSpecialChars($descript);
?></TEXTAREA>
<INPUT TYPE=submit>
</FORM>

参考


函数:hw_Children()

Hyperwave 服务器函数库

hw_Children

取得子类代码。

语法: array hw_children(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得子类的 ID 代码。参数 connection 为连接的代码。参数 objectID 为欲取得的子类。


函数:hw_ChildrenObj()

Hyperwave 服务器函数库

hw_ChildrenObj

取得子类的类记录。

语法: array hw_childrenobj(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得子类的类记录。参数 connection 为连接的代码。参数 objectID 为欲取得的子类。


函数:hw_Close()

Hyperwave 服务器函数库

hw_Close

关闭 Hyperwave 连接。

语法: boolean hw_close(int connection);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来关闭与 Hyperwave 服务器的连接。参数 connection 为连接代码。


函数:hw_Connect()

Hyperwave 服务器函数库

hw_Connect

连上 Hyperwave 服务器。

语法: int hw_connect(string host, int port, string [username], string [password]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来与 Hyperwave 服务器的连接。参数 host 为 Hyperwave 服务器。参数 port 为连接的 port。参数 username 与 password 可省略，分别为连接使用的帐号及密码，若省略 username 则为匿名使用。成功则返回连接代码，供其它函数使用，失败则返回 false。

参考


函数:hw_Cp()

Hyperwave 服务器函数库

hw_Cp

复制类。

语法: void hw_cp(int connection, array objrec, int dest);

返回值: 无

函数种类: 网络系统

内容说明

本函数用来复制指定的类。参数 connection 为连接代码。参数 objrec 为待复制的类代码数组。参数 dest 为目的的代码。

参考


函数:hw_Deleteobject()

Hyperwave 服务器函数库

hw_Deleteobject

删除类。

语法: boolean hw_deleteobject(int connection, int object_to_delete);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来删除指定的类。参数 connection 为连接代码。参数 object_to_delete 表欲删除的类。成功则返回 true。

参考


函数:hw_DocByAnchor()

Hyperwave 服务器函数库

hw_DocByAnchor

取得指定锚的文件类代码。

语法: int hw_docbyanchor(int connection, int anchorID);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得属于指定锚 (anchor) 的文件类代码。参数 connection 为连接代码。参数 anchorID 为锚代码。成功则返回代码值。


函数:hw_DocByAnchorObj()

Hyperwave 服务器函数库

hw_DocByAnchorObj

取得指定锚的文件类。

语法: string hw_docbyanchorobj(int connection, int anchorID);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得属于指定锚 (anchor) 的文件类。参数 connection 为连接代码。参数 anchorID 为锚代码。成功则返回类字符串。


函数:hw_DocumentAttributes()

Hyperwave 服务器函数库

hw_DocumentAttributes

取得指定文件类属性。

语法: string hw_documentattributes(int hw_document);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得指定文件类的属性。参数 hw_document 为文件类。成功则返回类字符串。

参考


函数:hw_DocumentBodyTag()

Hyperwave 服务器函数库

hw_DocumentBodyTag

取得指定文件类的文件主体标记。

语法: string hw_documentbodytag(int hw_document, string [prefix]);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得指定文件类的文件主体 (body) 标记 (tag)。参数 hw_document 为文件类。参数 prefix 可省略，表示在标记前要加的字符串。成功则返回主体标记字符串。

参考


函数:hw_DocumentContent()

Hyperwave 服务器函数库

hw_DocumentContent

取得指定文件类的内容。

语法: string hw_documentcontent(int hw_document);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得指定文件类的内容。参数 hw_document 为文件类。

参考


函数:hw_DocumentSetContent()

Hyperwave 服务器函数库

hw_DocumentSetContent

重设指定文件类的内容。

语法: boolean hw_documentsetcontent(int hw_document, string content);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来重新配置或者取代指定文件类的内容。参数 hw_document 为文件类。参数 content 即为中新的资料内容。成功则返回 true 值。

参考


函数:hw_DocumentSize()

Hyperwave 服务器函数库

hw_DocumentSize

取得文件大小。

语法: int hw_documentsize(int hw_document);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得指定文件类的内容大小，单位是位组 (byte)。参数 hw_document 为文件类。

参考


函数:hw_EditText()

Hyperwave 服务器函数库

hw_EditText

改动文字文件。

语法: boolean hw_edittext(int connection, int hw_document);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来将纯文字文件送上 Hyperwave 服务器上。参数 connection 为连接代码。参数 hw_document 为文件类。本函数仅限纯文字文件使用。

参考

hw_PipeDocument()
           hw_Free_Document()
           hw_DocumentBodyTag()
           hw_DocumentSize()
           hw_OutputDocumen()  hw_GetText()


函数:hw_Error()

Hyperwave 服务器函数库

hw_Error

取得错误代码。

语法: int hw_error(int connection);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得最后的错误代码。参数 connection 为和 Hyperwave 服务器的连接代码。返回为最后的错误代码数字，若无错误，则返回 0。


函数:hw_ErrorMsg()

Hyperwave 服务器函数库

hw_ErrorMsg

取得错误信息。

语法: string hw_errormsg(int connection);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得最后的错误信息。参数 connection 为和 Hyperwave 服务器的连接代码。返回为最后的错误信息，若无错误信息，则返回 No Error 字符串。


函数:hw_Free_Document()

Hyperwave 服务器函数库

hw_Free_Document

释放文件使用的内存。

语法: boolean hw_free_document(int hw_document);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来释放指定文件所使用的内存。参数 hw_document 为指定的文件名称。


函数:hw_GetAnchors()

Hyperwave 服务器函数库

hw_GetAnchors

取得文件的链接锚。

语法: array hw_getanchors(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得指定文件的链接锚 (ancher)。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。


函数:hw_GetAnchorsObj()

Hyperwave 服务器函数库

hw_GetAnchorsObj

取得文件的链接锚记录。

语法: array hw_getanchorsobj(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得指定文件链接锚 (ancher) 的记录。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。


函数:hw_GetAndLock()

Hyperwave 服务器函数库

hw_GetAndLock

取得并锁住类。

语法: string hw_getandlock(int connection, int objectID);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得类同时并锁住类，锁住之后别的程序无法存取该类，直到解除锁定为止。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考


函数:hw_GetChildColl()

Hyperwave 服务器函数库

hw_GetChildColl

取得子类们的 ID。

语法: array hw_getchildcoll(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得子类聚集 (collections) 的 ID。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考


函数:hw_GetChildCollObj()

Hyperwave 服务器函数库

hw_GetChildCollObj

取得子类们的资料。

语法: array hw_getchildcollobj(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得子类聚集 (collections) 的记录资料。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考


函数:hw_GetChildDocColl()

Hyperwave 服务器函数库

hw_GetChildDocColl

取得全部子文件聚集。

语法: array hw_getchilddoccoll(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得指定文件的子文件聚集。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考


函数:hw_GetChildDocCollObj()

Hyperwave 服务器函数库

hw_GetChildDocCollObj

取得全部子文件聚集记录。

语法: array hw_getchilddoccollobj(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得指定文件的子文件聚集记录。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考


函数:hw_GetObject()

Hyperwave 服务器函数库

hw_GetObject

取得类。

语法: string hw_getobject(int connection, int objectID);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得类。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考

hw_GetAndLock()


函数:hw_GetObjectByQuery()

Hyperwave 服务器函数库

hw_GetObjectByQuery

搜寻类。

语法: array hw_getobjectbyquery(int connection, string query, int max_hits);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来搜寻服务器中的类，并返回类资料数组。参数 connection 为和 Hyperwave 服务器的连接代码。参数 query 为为搜寻的字符串。参数 max_hits 表合于条件的最大笔数，若设为 -1 则表示没有限制。

参考

hw_GetObjectByQueryObj()


函数:hw_GetObjectByQueryColl()

Hyperwave 服务器函数库

hw_GetObjectByQueryColl

搜寻聚集类。

语法: array hw_getobjectbyquerycoll(int connection, int objectID, string query, int max_hits);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来搜寻服务器中的类聚集，并返回类资料数组。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。参数 query 为为搜寻的字符串。参数 max_hits 表合于条件的最大笔数，若设为 -1 则表示没有限制。

参考

hw_GetObjectByQueryCollObj()


函数:hw_GetObjectByQueryCollObj()

Hyperwave 服务器函数库

hw_GetObjectByQueryCollObj

搜寻聚集类。

语法: array hw_getobjectbyquerycollobj(int connection, int objectID, string query, int max_hits);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来搜寻服务器中的类聚集，并返回类记录数组。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。参数 query 为为搜寻的字符串。参数 max_hits 表合于条件的最大笔数，若设为 -1 则表示没有限制。

参考

hw_GetObjectByQueryColl()


函数:hw_GetObjectByQueryObj()

Hyperwave 服务器函数库

hw_GetObjectByQueryObj

搜寻类。

语法: array hw_getobjectbyqueryobj(int connection, string query, int max_hits);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来搜寻服务器中的类，并返回类记录数组。参数 connection 为和 Hyperwave 服务器的连接代码。参数 query 为为搜寻的字符串。参数 max_hits 表合于条件的最大笔数，若设为 -1 则表示没有限制。

参考

hw_GetObjectByQuery()


函数:hw_GetParents()

Hyperwave 服务器函数库

hw_GetParents

取得父类的 ID。

语法: array hw_getparentsobj(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得父类的 ID 值。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。


函数:hw_GetParentsObj()

Hyperwave 服务器函数库

hw_GetParentsObj

取得父类的资料。

语法: array hw_getparentsobj(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得父类的资料记录。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。


函数:hw_GetRemote()

Hyperwave 服务器函数库

hw_GetRemote

取得远端文件。

语法: int hw_getremote(int connection, int objectID);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得网络上远端机器的文件，透过 Hyperwave 闸道界面 (HGI, Hyperwave Gateway Interface) 取得 http、ftp 及部份数据库的文件资料。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。


函数:hw_GetRemoteChildren()

Hyperwave 服务器函数库

hw_GetRemoteChildren

取得远端的子文件。

语法: [array|int] hw_getremotechildren(int connection, string object_record);

返回值: 数组或整数

函数种类: 网络系统

内容说明

本函数用来取得网络上远端机器的子文件。若子文件数值为 1，则返回该文件本身；若子文件数超过 1，则返回类记录数组，更多的信息可以参考 Hyperwave 程序设计手册。参数 connection 为和 Hyperwave 服务器的连接代码。参数 object_record 为指定的类记录。

参考

hw_GetRemote()


函数:hw_GetSrcByDestObj()

Hyperwave 服务器函数库

hw_GetSrcByDestObj

取得指定目的的文件内容。

语法: array hw_getsrcbydestobj(int connection, int objectID);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得网络上远端机器的子文件。若子文件数值为 1，则返回该文件本身；若子文件数超过 1，则返回类记录数组，更多的信息可以参考 Hyperwave 程序设计手册。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。


函数:hw_GetText()

Hyperwave 服务器函数库

hw_GetText

取得纯文字文件。

语法: int hw_gettext(int connection, int objectID, int [rootID]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得纯文字文件，无法打开其它格式的文件。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。参数 rootID 可省略，默认值为 0，表自动在锚 (ancher) 链接处加上适当的路径字符串。

参考


函数:hw_GetUsername()

Hyperwave 服务器函数库

hw_GetUsername

目前用户名字。

语法: string hw_getusername(int connection);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得目前正在使用 Hyperwave 服务器的用户名字。参数 connection 为和 Hyperwave 服务器的连接代码。


函数:hw_Identify()

Hyperwave 服务器函数库

hw_Identify

用户身份确认。

语法: void hw_identify(string username, string password);

返回值: 无

函数种类: 网络系统

内容说明

本函数用来确认用户身份，只需在连接时认证即可。参数 username 及 password 分别为合法的帐号及密码。

参考

hw_Connect()


函数:hw_InCollections()

Hyperwave 服务器函数库

hw_InCollections

检查类聚集。

语法: array hw_incollections(int connection, array objids, array collids, int para);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来复制指定的类。参数 connection 为连接代码。参数 objids 为待检查的类数组。参数 collids 为类聚集。参数 para 为返回聚集，若设为 0，表 objids 全都包含于 collids；若设为 1，则表 objids 部份包含于 collids。


函数:hw_Info()

Hyperwave 服务器函数库

hw_Info

连接信息。

语法: string hw_info(int connection);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得连接信息。参数 connection 为连接代码。返回字符串为 <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping> 的格式。


函数:hw_InsColl()

Hyperwave 服务器函数库

hw_InsColl

插入聚集。

语法: int hw_inscoll(int connection, int objectID, array object_array);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可新增一个聚集。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。参数 object_array 为类数组。返回值为新聚集的代码。


函数:hw_InsDoc()

Hyperwave 服务器函数库

hw_InsDoc

插入文件。

语法: int hw_insdoc(int connection, int parentID, string object_record, string [text]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来插入新文件。参数 connection 为和 Hyperwave 服务器的连接代码。参数 parentID 为指定的父类 ID 值。参数 object_record 为欲插入的类记录。参数 text 可省略，若配置为 text 则表示纯 (ASCII) 文字。返回值为新文件的代码。治募注意的是本函数通常只用来插入纯文字文件或类记录，要插入任何格式的文件应用 hw_InsertDocument()

参考

hw_InsertDocument()


函数:hw_InsertDocument()

Hyperwave 服务器函数库

hw_InsertDocument

上传文件。

语法: int hw_insertdocument(int connection, int parentID, int hw_document);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来上传任何格式的新文件。参数 connection 为和 Hyperwave 服务器的连接代码。参数 parentID 为指定的父类 ID 值。参数 hw_document 为欲插入的文件。治募注意的是本函数上传文件前要先使用 hw_New_Document() 来建立新文件。

参考


函数:hw_InsertObject()

Hyperwave 服务器函数库

hw_InsertObject

插入类记录。

语法: int hw_insertobject(int connection, string object_record, string parameter);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来插入新类，类可以是任何合于 Hyperwave 规定的类，详细信息请参考 HG-CSP 文件。参数 connection 为和 Hyperwave 服务器的连接代码。参数 object_record 为欲插入的类记录。参数 parameter 为特殊的参数，例如 invisible，进一步信息也请参考 HG-CSP 文件。

参考


函数:hw_Modifyobject()

Hyperwave 服务器函数库

hw_Modifyobject

修改类记录。

语法: boolean hw_modifyobject(int connection, int object_to_change, array remove, array add, int [mode]);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数可用来移除、增加及修改类。参数 connection 为和 Hyperwave 服务器的连接代码。参数 object_to_change 为待修改的类。参数 remove 及 add 分别为要移除及加入的属性列示。参数 mode 通常省略，若要递回修改，则该参数设为 1。成功则返回 true。

使用范例

例一: 修改属性
<?php
// 之前的程序省略
$remarr = array("Name" => "books");
$addarr = array("Name" => "articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
// 之后的程序省略
?>

例二: 新增属性
<?php
// 之前的程序省略
$remarr = array("Name" => 0);
$addarr = array("Name" => "articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
// 之后的程序省略
?>

例三: 修改 title 属性
<?php
// 之前的程序省略
$remarr = array("Title" => "en:Books");
$addarr = array("Title" => "en:Articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
// 之后的程序省略
?>

例四: 修改 title 属性
<?php
// 之前的程序省略
$remarr = array("Title" => array("en" => "Books"));
$addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel"));
$hw_modifyobject($connect, $objid, $remarr, $addarr);
// 之后的程序省略
?>

例五: 移除属性
<?php
// 之前的程序省略
$remarr = array("Title" => "");
$addarr = array("Title" => "en:Articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
// 之后的程序省略
?>


函数:hw_Mv()

Hyperwave 服务器函数库

hw_Mv

移动类。

语法: void hw_mv(int connection, array objrec, int from, int dest);

返回值: 无

函数种类: 网络系统

内容说明

本函数用来复制指定的类。参数 connection 为连接代码。参数 objrec 为待复制的类代码数组。参数 from 及 dest 分别为来源及目的的代码。

参考


函数:hw_New_Document()

Hyperwave 服务器函数库

hw_New_Document

建立新文件。

语法: int hw_new_document(string object_record, string document_data, int document_size);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来建立新的 Hyperwave 文件。参数 object_record 为类记录。参数 document_data 为文件资料。参数 document_size 为文件大小。治募注意的是本函数不能插入文件到 Hyperwave 服务器上。

参考


函数:hw_Objrec2Array()

Hyperwave 服务器函数库

hw_Objrec2Array

类记录转为数组。

语法: array hw_objrec2array(string object_record);

返回值: 数组

函数种类: 网络系统

内容说明

本函数将类记录转换成类数组。参数 object_record 为类记录。


函数:hw_OutputDocument()

Hyperwave 服务器函数库

hw_OutputDocument

输出文件。

语法: boolean hw_outputdocument(int hw_document);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数将文件输出到标准输出设备上，输出的文件不包含内文标记 (BODY Tag)。成功则返回 true。


函数:hw_pConnect()

Hyperwave 服务器函数库

hw_pConnect

连上 Hyperwave 服务器。

语法: int hw_pconnect(string host, int port, string [username], string [password]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来维持与 Hyperwave 服务器的连接。参数 host 为 Hyperwave 服务器。参数 port 为连接的 port。参数 username 与 password 可省略，分别为连接使用的帐号及密码，若省略 username 则为匿名使用。成功则返回连接代码，供其它函数使用，失败则返回 false。若已连接上，则使用前回连接的资源。

参考


函数:hw_PipeDocument()

Hyperwave 服务器函数库

hw_PipeDocument

取得文件。

语法: int hw_pipedocument(int connection, int objectID);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可取回任何格式的文件。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考


函数:hw_Root()

Hyperwave 服务器函数库

hw_Root

取得根类代码。

语法: int hw_root();

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得根类代码。


函数:hw_Unlock()

Hyperwave 服务器函数库

hw_Unlock

取消锁定。

语法: boolean hw_unlock(int connection, int objectID);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数取消锁定指定的类。参数 connection 为和 Hyperwave 服务器的连接代码。参数 objectID 为指定的类 ID 值。

参考

hw_GetAndLock()


函数:hw_Who()

Hyperwave 服务器函数库

hw_Who

列出目前用户。

语法: array hw_who(int connection);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来列出目前正在使用 Hyperwave 服务器的用户。参数 connection 为和 Hyperwave 服务器的连接代码。返回数组资料包括帐号、姓名、使用时间....等等。


函数:ibase_bind()

InterBase 数据库函数库

ibase_bind

链接 PHP 变量到 InterBase 参数。

语法: boolean ibase_bind(int query);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数将 PHP 变量与 InterBase 的 SQL 参数系结在一起。SQL 参数 (SQL parameter) 必须是类似 ":name" 的型式。若成功则返回 true，反之返回 false。


函数:ibase_close()

InterBase 数据库函数库

ibase_close

关闭 InterBase 服务器连接。

语法: boolean ibase_close(int link_identifier);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数关闭与 InterBase 数据库服务器的连接。若无指定参数 link_identifier 则会关闭最后的一笔连接。用 ibase_pconnect() 连接则无法使用本函数关闭。实际上本函数不是一定需要的，当 PHP 整页程序结束后，将会自动关闭与数据库的非永久性 (non-persistent) 连接。成功返回 true、失败返回 false 值。

参考


函数:ibase_connect()

InterBase 数据库函数库

ibase_connect

打开 InterBase 服务器连接。

语法: int ibase_connect(string database, string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数建立与 InterBase 服务器的连接。参数 database 为欲使用的数据库名称。参数 username 及 password 可省略，分别为连接的帐号及密码。

参考


函数:ibase_execute()

InterBase 数据库函数库

ibase_execute

执行 SQL 的指令部分。

语法: int ibase_execute(int query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来执行经过 ibase_prepare() 处理过的 SQL 指令。


函数:ibase_fetch_row()

InterBase 数据库函数库

ibase_fetch_row

返回单列的各字段。

语法: array ibase_fetch_row(int result);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引，第一个的索引值是 0。若 result 没有资料，则返回 false 值。


函数:ibase_free_query()

InterBase 数据库函数库

ibase_free_query

释放查询指令占用内存。

语法: boolean ibase_free_query(int query);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数可以释放目前 InterBase 数据库 query 指令所占用的内存。


函数:ibase_free_result()

InterBase 数据库函数库

ibase_free_result

释放返回占用内存。

语法: boolean ibase_free_result(int result);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数可以释放目前 InterBase 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才可能用到本函数。PHP 程序会在结束时自动释放。


函数:ibase_pconnect()

InterBase 数据库函数库

ibase_pconnect

保持 InterBase 服务器连接。

语法: int ibase_pconnect(string database, string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数建立与 InterBase 服务器持续连接。参数 database 为欲使用的数据库名称。参数 username 及 password 可省略，分别为连接的帐号及密码。本函数在 PHP 程序结束时并不会关闭数据库，而等待下一次的连接，可以增加与数据库连接速度。

参考


函数:ibase_prepare()

InterBase 数据库函数库

ibase_prepare

分析 SQL 语法。

语法: boolean ibase_prepare(int link_identifier, string query);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数可用来分析 SQL 语法是否有错误，以供数据库查询。参数 link_identifier 为打开的 ID。参数 query 为欲对数据库下达的 SQL 字符串。


函数:ibase_query()

InterBase 数据库函数库

ibase_query

送出一个 query 字符串。

语法: int ibase_query(int link_identifier, string query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数送出 query 字符串供 InterBase 做相关的处理或者执行。参数 link_identifier 为打开的 ID。参数 query 为欲对数据库下达的 SQL 字符串。


函数:ibase_timefmt()

InterBase 数据库函数库

ibase_timefmt

配置时间格式。

语法: int ibase_timefmt(string format);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来配置 SQL 指令返回字符串有关时间日期部份的字符串格式。参数 format 为欲配置时间的格式。


函数:ifx_affected_rows()

Informix 数据库函数库

ifx_affected_rows

得到 Informix 最后操作影响的列数目。

语法: int ifx_affected_rows(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可得到 Informix 最后查询操作 INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。若最后使用的是 SELECT，则用本函数得到的数目为估计值，而非精确的数目，欲得到 SELECT 返回的数目需使用 ifx_num_rows() 函数。

使用范例

本例为部份程序

<?php
$rid = ifx_prepare ("select * from userinfo where name like " . $name, $connid);
if (! $rid) {
// 错误处理的部份
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
printf ("返回资料太多，共 %d 笔\n<br>", $rowcount);
die ("请重新执行 SQL 指令<br>\n");
}
?>

参考

ifx_num_rows()


函数:ifx_blobinfile_mode()

Informix 数据库函数库

ifx_blobinfile_mode

配置长位类模式。

语法: boolean ifx_blobinfile_mode(int mode);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来配置所有 select 的 SQL 指令用到的长位 (blob) 类模式默认值。参数 mode 的值为储存 blob 资料的地点， 0 表在内存；1 表在文件中。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_byteasvarchar()

Informix 数据库函数库

ifx_byteasvarchar

配置位组模式默认值。

语法: boolean ifx_byteasvarchar(int mode);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来配置所有 select 的 SQL 指令用到的位组 (byte) 类模式默认值。参数 mode 的值为 0 表返回 blob 的代码；1 表返回 varchar 字符串。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_close()

Informix 数据库函数库

ifx_close

关闭 Informix 服务器连接。

语法: boolean ifx_close(int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数关闭与 Informix 数据库服务器的连接。若无指定参数 link_identifier 则会关闭最后的一笔连接。用 ifx_pconnect() 连接则无法使用本函数关闭。本函数可以省略，当 PHP 整页程序结束后，将会自动关闭与数据库的非永久性 (non-persistent) 连接。返回值均为 true。


函数:ifx_connect()

Informix 数据库函数库

ifx_connect

打开 Informix 服务器连接。

语法: int ifx_connect(string [database], string [userid], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数建立与 Informix 服务器的连接。其中所有的参数都可省略。若全部参数都省略时，使用系统的 php3.ini 或是 php.ini (视 PHP 版本决定) 中 ifx.default_host 指定的机器，或是环境变量 $INFORMIXSERVER；ifx.default_user 为用户帐号；ifx.default_password 为用户密码。而参数 database、userid 及 password 分别为数据库的名字、登入帐号及使用密码。当然，在使用本函数之后，尽早使用 ifx_close() 关闭 Informix 数据库比较好。连接成功则返回连接代码，失败则返回 false 值。

使用范例

本例只有连上数据库，什么事都没做。

<?php
$conn_id = ifx_pconnect("mydb@ol_srv1", "imyself", "mypassword");
ifx_close($conn_id);
?>

参考


函数:ifx_copy_blob()

Informix 数据库函数库

ifx_copy_blob

复制长位类。

语法: int ifx_copy_blob(int bid);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来复制长位 (blob) 类。参数 bid 为 blob 类代码。成功则返回新的长位类代码，失败返回 false 值。


函数:ifx_create_blob()

Informix 数据库函数库

ifx_create_blob

建立长位类。

语法: int ifx_create_blob(int type, int mode, string param);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来建立长位 (blob) 类。参数 type 表示 blob 的类型，1 表文字资料；0 表位资料。参数 mode 为长位资料的存放处，0 表在内存；1 表在文件中。参数 param 为 blob 的内容，若 mode 为 0 则为内存指针；若 mode 为 1 则为文件名。成功则返回长位的类代码，失败返回 false 值。


函数:ifx_create_char()

Informix 数据库函数库

ifx_create_char

建立字符类。

语法: int ifx_create_char(string param);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来建立字符 (char) 类。参数 param 为字符的内容。成功则返回字符的类代码，失败返回 false 值。


函数:ifx_do()

Informix 数据库函数库

ifx_do

执行已准备 query 字符串。

语法: boolean ifx_do(int result_id);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来执行已经由 ifx_prepare() 函数所准备的字符串。参数 result_id 即为 ifx_prepare() 所返回的待执行代码。成功则返回 true，失败返回 false 值。


函数:ifx_error()

Informix 数据库函数库

ifx_error

取得 Informix 最后的错误。

语法: string ifx_error(void);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 Informix 数据库最后的错误信息，本函数无须加入任何参数。返回的字符串如以下的格式

X [SQLSTATE=aa bbb SQLCODE=c]

其中的 X 代表错误信息的种类，见下表

字符 | 代表种类
空格 | 无错误
E | 错误 (Error)
N | 无资料
W | 警告 (Warning)
? | 其它未定义

至于 aa、bbb、c 表示数字资料，并分别为二位、三位及一位数。更多有关细节参考 Informix 手册中有关 SQLSTATE 与 SQLCODE 的信息。

参考

ifx_errormsg()


函数:ifx_errormsg()

Informix 数据库函数库

ifx_errormsg

取得 Informix 最后错误信息。

语法: string ifx_errormsg(int [errorcode]);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 Informix 数据库最后的错误信息字符串。参数 errorcode 代表错误代码。

使用范例

本例为部份程序

<?php
printf("%s\n<br>", ifx_errormsg(-201));
?>

参考

ifx_error()


函数:ifx_fetch_row()

Informix 数据库函数库

ifx_fetch_row

返回单列的各字段。

语法: array ifx_fetch_row(int result_id, mixed [position]);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引，第一个的索引值是 0。若 result 没有资料，则返回 false 值。参数 position 可省略，是所谓的卷动游标 (scroll cursor)，可能值为：NEXT、PREVIOUS、CURRENT、FIRST 或者 LAST；亦可能为数字，表示指定为第几列。

使用范例

以下的范例为连上 Informix 数据库后的步骤

<?php
$rid = ifx_prepare("select * from emp where name like ".$name, $connid, IFX_SCROLL);
if (! $rid) {
// 错误处理
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
printf ("返回资料太多，共 %d 笔\n<br>", $rowcount);
die ("请重新执行 SQL 指令<br>\n");
}
if (! ifx_do ($rid)) {
// 错误处理
}
$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_fieldproperties()

Informix 数据库函数库

ifx_fieldproperties

列出 Informix 的 SQL 字段属性。

语法: array ifx_fieldproperties(int result_id);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数可以获得 Informix 的 SQL 指令返回字段的属性。参数 result_id 是经过 ifx_query() 或 ifx_prepare() 的返回代号。

使用范例

本例为程序的一部份

<?php
$properties = ifx_fieldtypes($resultid);
if (! isset($properties)) {
// 错误处理
}
for ($i = 0; $i < count($properties); $i++) {
$fname = key($properties);
printf("%s:\t type = %s\n", $fname, $properties[$fname]);
next($properties);
}
?>


函数:ifx_fieldtypes()

Informix 数据库函数库

ifx_fieldtypes

列出 Informix 的 SQL 字段。

语法: array ifx_fieldtypes(int result_id);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数可以获得 Informix 的 SQL 指令返回的字段。参数 result_id 是经过 ifx_query() 或 ifx_prepare() 的返回代号。

使用范例

本例为程序的一部份

<?php
$types = ifx_fieldtypes($resultid);
if (! isset($types)) {
// 错误处理
}
for ($i = 0; $i < count($types); $i++) {
$fname = key($types);
printf("%s :\t 类型为: %s\n", $fname, $types[$fname]);
next($types);
}
?>


函数:ifx_free_blob()

Informix 数据库函数库

ifx_free_blob

删除长位类。

语法: boolean ifx_free_blob(int bid);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来删除长位 (blob) 类。参数 bid 为 blob 类代码。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_free_char()

Informix 数据库函数库

ifx_free_char

删除字符类。

语法: boolean ifx_free_char(int bid);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来删除字符 (char) 类。参数 bid 为字符的类代码。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_free_result()

Informix 数据库函数库

ifx_free_result

释放返回占用内存。

语法: boolean ifx_free_result(int result_id);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数可以释放目前 Informix 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数，因为 PHP 程序会在结束时自动释放。发生错误则返回 false 值。


函数:ifx_free_slob()

Informix 数据库函数库

ifx_free_slob

删除 slob 类。

语法: boolean ifxus_free_slob(int bid);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来删除 slob 类。参数 bid 为 slob 类代码。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_get_blob()

Informix 数据库函数库

ifx_get_blob

取得长位类。

语法: string ifx_get_blob(int bid);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得长位 (blob) 类。参数 bid 为长位的类代码。返回值为 blob 类的内容。


函数:ifx_get_char()

Informix 数据库函数库

ifx_get_char

取得字符类。

语法: string ifx_get_char(int bid);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得字符 (char) 类。参数 bid 为字符的类代码。返回值为字符的内容。


函数:ifx_getsqlca()

Informix 数据库函数库

ifx_getsqlca

取得 query 后的 sqlca 信息。

语法: array ifx_getsqlca(int result_id);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数可得到 Informix 最后查询操作后的 sqlca 结构 (struct) 中的相关信息。参数 result_id 是经过 ifx_query() 及 ifx_prepare() 的返回代号。本函数返回的数组其实就是 sqlca.sqlerrd[0] 到 sqlca.sqlerrd[5] 等六个元素的数组。

使用范例

下例为部份程序

<?php
$qid = ifx_query("insert into sometable values(0, '2nd column', 'another column' ", $connid);
if (! $qid) {
// 错误处理
}
$sqlca = ifx_getsqlca ($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "插入列序号为: " . $serial_value<br>n";
?>


函数:ifx_htmltbl_result()

Informix 数据库函数库

ifx_htmltbl_result

将 query 返回资料转成 HTML 表格。

语法: int ifx_htmltbl_result(int result_id, string [html_table_options]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来将 query 查询结果格式化成 HTML 标记格式的表格形式。参数 html_table_options 可省略，为 <table> 标记中的参数选项。成功则返回列数，失败则返回 false 值。

使用范例

以下的范例中，<table> 标记的参数设表格边宽为 2。

<?php
$rid = ifx_prepare("select * from emp where name like ".$name, $connid, IFX_SCROLL);
if (! $rid) {
// 错误处理
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
printf ("返回资料太多，共 %d 笔\n<br>", $rowcount);
die ("请重新执行 SQL 指令<br>\n");
}
if (! ifx_do($rid) {
// 错误处理
}
ifx_htmltbl_result($rid, "border=\"2\"");
ifx_free_result($rid);
?>


函数:ifx_nullformat()

Informix 数据库函数库

ifx_nullformat

配置空字符模式默认值。

语法: boolean ifx_nullformat(int mode);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来配置所有 select 的 SQL 指令用到的空字符 (null) 类模式默认值。参数 mode 的值为 0 表返回 "" (空字符串)；1 表返回 NULL 字符串。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_num_fields()

Informix 数据库函数库

ifx_num_fields

取得返回字段的数目。

语法: int ifx_num_fields(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回字段的数目。参数 result_id 是经过 ifx_query() 或 ifx_prepare() 的返回代号。若发生错误则返回 false 值。


函数:ifx_num_rows()

Informix 数据库函数库

ifx_num_rows

取得返回列的数目。

语法: int ifx_num_rows(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到 Informix 数据库返回列的数目。参数 result_id 是经过 ifx_query() 或 ifx_do() 的返回代号。若发生错误则返回 false 值。


函数:ifx_pconnect()

Informix 数据库函数库

ifx_pconnect

打开 Informix 服务器持续连接。

语法: int ifx_pconnect(string [database], string [userid], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数与 ifx_connect() 很类似。不同的地方在于使用本函数打开数据库时，程序会先寻找是否曾经执行过本函数，若执行过则返回先前执行的 ID。另一个不同的地方是本函数无法使用 ifx_close() 关闭数据库。

参考


函数:ifx_prepare()

输入待寻字符串
<?php
require( "http://php.wilson.gs"); // 回首页
echo "http://php.wilson.gs/bible/function.php : 函数:ifx_prepare()";

 函数:ifx_prepare()

Informix 数据库函数库

ifx_prepare

准备 query 字符串。

语法: int ifx_prepare(string query, int link_identifier, int [cursor_type], mixed blobidarray);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数准备 query 字符串供 Informix 接着做相关的处理。若没有指定 link_identifier 参数，则程序会自动寻找最近打开的 ID。参数 cursor_type 可省略，其值有 IFX_SCROLL 与 IFX_HOLD 二种。若有 BLOB 的字段要加在 query 指令之中，可使用 blobidarray 参数，指定 BLOB 的代码。返回值可供 ifx_do() 使用。


函数:ifx_query()

Informix 数据库函数库

ifx_query

送出一个 query 字符串。

语法: int ifx_query(string query, int [link_identifier], int [cursor_type], mixed [blobidarray]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数送出 query 字符串供 Informix 做相关的处理步骤。若没有指定 link_identifier 参数，则程序会自动寻找最近打开的 ID。参数 cursor_type 可省略，其值有 IFX_SCROLL 与 IFX_HOLD 二种。若有 BLOB 的字段要加在 query 指令之中，可使用 blobidarray 参数，指定 BLOB 的代码。

使用范例

例一:

<?php
// 之前的程序省略
ifx_textasvarchar(1); // 使用文字模式 (text mode) 的 blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
printf("无法取出 orders 资料表 : %s\n<br>%s<br>\n", ifx_error());
ifx_errormsg();
die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
// 之后的程序省略
?>

例二:

<?php
// 之前的程序省略
//
// 为二进位及文字建立 BLOB 代码
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");

$blobidarray[] = $textid;
$blobidarray[] = $byteid;

$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) {
// 错误处理
}
ifx_free_result($res_id);
// 之后程序省略
?>


函数:ifx_textasvarchar()

Informix 数据库函数库

ifx_textasvarchar

配置文字模式默认值。

语法: boolean ifx_textasvarchar(int mode);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来配置所有 select 的 SQL 指令用到的文字 (text) 类模式默认值。参数 mode 的值为 0 表返回 blob 的代码；1 表返回 varchar 字符串。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_update_blob()

Informix 数据库函数库

ifx_update_blob

更改长位类。

语法: boolean ifx_update_blob(int bid, string content);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来更改长位 (blob) 类。参数 bid 为 blob 类代码。参数 content 为欲使用新的 blob 资料。执行成功则返回 true 值，失败返回 false 值。


函数:ifx_update_char()

Informix 数据库函数库

ifx_update_char

更改字符类。

语法: boolean ifx_update_char(int bid, string content);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来更改字符 (char) 类。参数 bid 为字符的类代码。参数 content 为欲使用的新字符。执行成功则返回 true 值，失败返回 false 值。


函数:ifxus_close_slob()

Informix 数据库函数库

ifxus_close_slob

删除 slob 类。

语法: boolean ifxus_close_slob(int bid);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来删除 slob 类。参数 bid 为 slob 类代码。执行成功则返回 true 值，失败返回 false 值。


函数:ifxus_create_slob()

Informix 数据库函数库

ifxus_create_slob

建立 slob 类。

语法: int ifxus_create_slob(int mode);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来建立 slob 类。参数 mode 值如下表

数值 | 常量
1 | LO_RDONLY
2 | LO_WRONLY
4 | LO_APPEND
8 | LO_RDWR
16 | LO_BUFFER
32 | LO_NOBUFFER

当然也 mode 可以直接使用常量值，如 IFX_LO_RDONLY。若有需要，可使用数字相加，使 mode 值更有变化。成功则返回 slob 的类代码，失败返回 false 值。


函数:ifxus_open_slob()

Informix 数据库函数库

ifxus_open_slob

打开 slob 类。

语法: int ifxus_open_slob(long bid, int mode);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开 slob 类。参数 bid 为 slob 类代码。参数 mode 值如下表

数值 | 常量
1 | LO_RDONLY
2 | LO_WRONLY
4 | LO_APPEND
8 | LO_RDWR
16 | LO_BUFFER
32 | LO_NOBUFFER

当然也 mode 可以直接使用常量值，如 IFX_LO_RDONLY。若有需要，可使用数字相加，使 mode 值更有变化。成功则返回 slob 的类代码，失败返回 false 值。


函数:ifxus_read_slob()

Informix 数据库函数库

ifxus_read_slob

读取指定数目的 slob 类。

语法: string ifxus_read_slob(long bid, long nbytes);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来读取指定位数的 slob 类。参数 bid 为 slob 类代码。参数 nbytes 为位组数目。执行成功则返回 slob 部份字符串，失败返回 false 值。


函数:ifxus_seek_slob()

Informix 数据库函数库

ifxus_seek_slob

配置目前文件或找寻位置。

语法: int ifxus_seek_blob(long bid, int mode, long offset);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来配置目前文件或找寻文件的位置。参数 bid 为 slob 类代码。参数 mode 的值如下：0 表 LO_SEEK_SET、1 表 LO_SEEK_CUR、2 表 LO_SEEK_END。参数 offset 为位组偏移值。执行成功则返回代码值，失败返回 false 值。


函数:ifxus_tell_slob()

Informix 数据库函数库

ifxus_tell_slob

返回目前文件或找寻位置。

语法: int ifxus_tell_slob(long bid);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数返回目前文件或者找寻文件的位置。参数 bid 为 slob 类代码。执行成功则返回代码值，失败返回 false 值。


函数:ifxus_write_slob()

Informix 数据库函数库

ifxus_write_slob

将字符串写入 slob 类中。

语法: int ifxus_write_slob(long bid, string content);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将指定字符串写入 slob 类之中。参数 bid 为 slob 类代码。参数 content 为待写入字符串。执行成功则返回写入字符数，失败返回 false 值。


函数:ignore_user_abort()

杂项函数库

ignore_user_abort

连接中断后程序是否执行。

语法: int ignore_user_abort(int [setting]);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数配置或取得使用端连接中断后，PHP 程序是否仍继续执行。默认值为中断连接后就停止执行。在 PHP 配置文件中 (php3.ini/php.ini) 的 ignore_user_abort 选项就是配置处。本功能在 PHP 3.0.7 版之后才开始提供。


函数:ImageArc()

图形处理函数库

ImageArc

画弧线。

语法: int imagearc(int im, int cx, int cy, int w, int h, int s, int e, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来画弧线。原点坐标 (0,0) 为图片的左上角，参数 cx、cy 为椭圆心坐标，参数 w 为水平轴长，参数 h 为垂直轴长，参数 s 及 e 分别为起始角与结束角，参数 col 为弧线的颜色。参数 im 表示图形的 handle。


函数:ImageChar()

图形处理函数库

ImageChar

写出横向字符。

语法: int imagechar(int im, int font, int x, int y, string c, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来书写横向的字符。原点坐标 (0,0) 为图片的左上角，参数 font 表示字体的大小，从最小的 1 起，参数 x、y 是写入字符的坐标值，参数 c 为欲写出的字符，参数 col 为字的颜色。参数 im 表示图形的 handle。

参考

ImageLoadFont()


函数:ImageCharUp()

图形处理函数库

ImageCharUp

写出直式字符。

语法: int imagecharup(int im, int font, int x, int y, string c, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来书写直式的字符。原点坐标 (0,0) 为图片的左上角，参数 font 表示字体的大小，从最小的 1 起，参数 x、y 是写入字符的坐标值，参数 c 为欲写出的字符，参数 col 为字的颜色。参数 im 表示图形的 handle。

参考

ImageLoadFont()


函数:ImageColorAllocate()

图形处理函数库

ImageColorAllocate

匹配颜色。

语法: int imagecolorallocate(int im, int red, int green, int blue);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来匹配图形的颜色，供其它绘图函数使用。参数 im 表示图形的 handle。参数 red、green、blue 是色彩三原色，其值从 0 至 255。

使用范例

<?
$white = ImageColorAllocate($im, 255,255,255);
$black = ImageColorAllocate($im, 0,0,0);
?>


函数:ImageColorAt()

图形处理函数库

ImageColorAt

取得图中指定点颜色的索引值。

语法: int imagecolorat(int im, int x, int y);

返回值: 整数

函数种类: 图形处理

内容说明

本函数可取得图形中某指定点的颜色索引值 (index)。

参考


函数:ImageColorClosest()

图形处理函数库

ImageColorClosest

计算色表中与指定颜色最接近者。

语法: int imagecolorclosest(int im, int red, int green, int blue);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来计算调色盘中与指定 RGB 颜色最接近的颜色。参数 red、green、blue 分别为红、绿、蓝三原色，也就是所谓的 RGB 值。

参考

ImageColorExact()


函数:ImageColorExact()

图形处理函数库

ImageColorExact

计算色表上指定颜色索引值。

语法: int imagecolorexact(int im, int red, int green, int blue);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来计算调色盘中指定 RGB 颜色的色素索引值。参数 red、green、blue 分别为红、绿、蓝三原色，也就是所谓的 RGB 值。若调色盘中没有指定的颜色，则返回 -1。

参考

ImageColorClosest()


函数:ImageColorResolve()

图形处理函数库

ImageColorResolve

计算色表上指定或最接近颜色的索引值。

语法: int imagecolorresolve(int im, int red, int green, int blue);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来计算调色盘中指定 RGB 颜色的色素索引值。参数 red、green、blue 分别为红、绿、蓝三原色，也就是所谓的 RGB 值。若无指定颜色则取得最接近的颜色。无论如何本函数都会有索引值返回。

参考


函数:ImageColorSet()

图形处理函数库

ImageColorSet

配置色表上指定索引的颜色。

语法: boolean imagecolorset(int im, int index, int red, int green, int blue);

返回值: 布尔值

函数种类: 图形处理

内容说明

本函数用来配置调色盘上指定索引的颜色值。参数 index 为索引值。参数 red、green、blue 分别为红、绿、蓝三原色，也就是所谓的 RGB 值。此函数适合将图片上某颜色改掉，即利用索引的颜色更改图片颜色。

参考

ImageColorAt()


函数:ImageColorsForIndex()

图形处理函数库

ImageColorsForIndex

取得色表上指定索引的颜色。

语法: array imagecolorsforindex(int im, int index);

返回值: 数组

函数种类: 图形处理

内容说明

本函数用来取得调色盘上指定索引的颜色值。参数 index 为索引值。数组返回值分别为红、绿、蓝三原色的值。

参考


函数:ImageColorsTotal()

图形处理函数库

ImageColorsTotal

计算图的颜色数。

语法: int imagecolorstotal(int im);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来计算图片的调色盘有几种不同的颜色。

参考


函数:ImageColorTransparent()

图形处理函数库

ImageColorTransparent

指定透明背景色。

语法: int imagecolortransparent(int im, int [col]);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来指定某色为透明背景。参数 im 为使用 imagecreate() 打开图形的 handle。参数 col 为 ImageColorAllocate() 所匹配的颜色。返回值为新的透明背景色。


函数:ImageCopyResized()

图形处理函数库

ImageCopyResized

复制新图并调整大小。

语法: int imagecopyresized(int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH);

返回值: 整数

函数种类: 图形处理

内容说明

本函数可复制新图，并重新调整图片的大小尺寸。参数都是目的在前，来源在后。参数 dst_im 及 src_im 为图片的 handle。参数 dstX、dstY、srcX、srcY 分别为目的及来源的坐标。参数 dstW、dstH、srcW、srcH 分别为来源及目的的宽及高，若欲调整新图的尺寸就在这儿配置。


函数:ImageCreate()

图形处理函数库

ImageCreate

建立新图。

语法: int imagecreate(int x_size, int y_size);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来建立一张全空的图形。参数 x_size、y_size 为图形的尺寸，单位为像素 (pixel)。


函数:ImageCreateFromGIF()

图形处理函数库

ImageCreateFromGIF

取出 GIF 图型。

语法: int imagecreatefromgif(string filename);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来取出一张 GIF 格式图形，通当取出当背景或者基本的画布样本使用。参数 filename 可以是本地端的文件，也可以是网络的 URL 位址。返回值为 GIF 的文件代码，可供其它的函数使用。本函数产生的 GIF 图，由于有版权的问题，因此在商业上的使用还要多加考量。


函数:ImageCreateFromPNG()

图形处理函数库

ImageCreateFromPNG

取出 PNG 图型。

语法: int imagecreatefrompng(string filename);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来取出一张 PNG 格式图形，通当取出当背景或者基本的画布样本使用。参数 filename 可以是本地端的文件，也可以是网络的 URL 位址。返回值为 PNG 的文件代码，可供其它的函数使用。本函数在 PHP 3.0.13 版之后才支持。


函数:ImageDashedLine()

图形处理函数库

ImageDashedLine

绘虚线。

语法: int imagedashedline(int im, int x1, int y1, int x2, int y2, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将在图形上画出一条虚线。从 x1、y1 连接到 x2、y2，原点 (0,0) 为图形的左上角。参数 col 为虚线的颜色。

参考

ImageLine()


函数:ImageDestroy()

图形处理函数库

ImageDestroy

结束图形。

语法: int imagedestroy(int im);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将图片 handle 解构，释于内存空间。参数 im 为 ImageCreate() 所建立的图片 handle。


函数:ImageFill()

图形处理函数库

ImageFill

图形着色。

语法: int imagefill(int im, int x, int y, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将图片坐标 (x,y) 所在的区域着色。参数 col 表示欲涂上的颜色。


函数:ImageFilledPolygon()

图形处理函数库

ImageFilledPolygon

多边形区域着色。

语法: int imagefilledpolygon(int im, array points, int num_points, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将图片的封闭多边形区域着色。参数 points 为数组，代表多边形区域，数组的偶数元素为 X 坐标，奇数元素为 Y 坐标，例如 points[0] = x0、points[1] = y0、points[2] = x1、points[3] = y1。参数 num_points 为多边形的转折点数目。参数 col 表示欲涂上的颜色。


函数:ImageFilledRectangle()

图形处理函数库

ImageFilledRectangle

矩形区域着色。

语法: int imagefilledrectangle(int im, int x1, int y1, int x2, int y2, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将图片的封闭长方形区域着色。参数 x1、y1 及 x2、y2 分别为矩形对角线的坐标。参数 col 表示欲涂上的颜色。


函数:ImageFillToBorder()

图形处理函数库

ImageFillToBorder

指定颜色区域内着色。

语法: int imagefilltoborder(int im, int x, int y, int border, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将图片中指定的颜色做为边界，着色在其中的封闭区域之中。参数 x、y 为着色区内的坐标，原点 (0,0) 为图形的左上角。参数 border 为颜色值，表填入颜色的边界范围。参数 col 表示欲涂上的颜色。


函数:ImageFontHeight()

图形处理函数库

ImageFontHeight

取得字型的高度。

语法: int imagefontheight(int font);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来取得指定字型的高度，单位为像素 (pixel)。

参考


函数:ImageFontWidth()

图形处理函数库

ImageFontWidth

取得字型的宽度。

语法: int imagefontwidth(int font);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来取得指定字型的宽度，单位为像素 (pixel)。

参考


函数:ImageGIF()

图形处理函数库

ImageGIF

建立 GIF 图型。

语法: int imagegif(int im, string [filename]);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来建立一张 GIF 格式图形。参数 im 为使用 ImageCreate() 所建立的图片代码。参数 filename 可省略，若无本参数 filename，则会将图片指接送到浏览器端，记得在送出图片之前要先送出使用 Content-type: image/gif 的标头字符串 (header) 到浏览器端，以顺利传输图片。若要使用透明背景的 GIF 图，也就是 GIF89a 的格式，需要先使用 ImageColorTransparent() 配置透明背景。本函数产生的 GIF 图，由于有版权的问题，因此在商业上的使用还要多加考量。


函数:ImageInterlace()

图形处理函数库

ImageInterlace

使用交错式显示与否。

语法: int imageinterlace(int im, int [interlace]);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来决定图片是否使用交错式显示 (interlace)。欲使用交错式显示，则将参数 interlace 值设为 1。不想使用交错式显示图形则将之设为 0。返回值 1 表示已配置成交错式、0 表示已设成非交错式。


函数:ImageLine()

图形处理函数库

ImageLine

绘实线。

语法: int imageline(int im, int x1, int y1, int x2, int y2, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将在图形上画出一条实线。从 x1、y1 连接到 x2、y2，原点 (0,0) 为图形的左上角。参数 col 为实线的颜色。

参考

ImageDashedLine()


函数:ImageLoadFont()

图形处理函数库

ImageLoadFont

载入点阵字型。

语法: int imageloadfont(string file);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来载入用户自订的点阵字型。返回值为字型的代号，此值为大于 5 的整数。字型文件的格式如表

byte偏移 | 类型 | 说明
0-3 | int | 文件中字符的数目
4-7 | int | 字型的启始 ASCII 字符，例如从 ASCII 32 的空白开始
8-11 | int | 字符的宽度
12-15 | int | 字符的高度
16以后 | char | 字符的位值，也就是点阵的内容

参考


函数:ImagePNG()

图形处理函数库

ImagePNG

建立 PNG 图型。

语法: int imagepng(int im, string [filename]);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来建立一张 PNG 格式图形。参数 im 为使用 ImageCreate() 所建立的图片代码。参数 filename 可省略，若无本参数 filename，则会将图片指接送到浏览器端，记得在送出图片之前要先送出使用 Content-type: image/png 的标头字符串 (header) 到浏览器端，以顺利传输图片。本函数在 PHP 3.0.13 版之后才支持。


函数:ImagePolygon()

图形处理函数库

ImagePolygon

绘多边形。

语法: int imagepolygon(int im, array points, int num_points, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数可在图片上绘出多边形。参数 points 为数组，代表多边形区域，数组的偶数元素为 X 坐标，奇数元素为 Y 坐标，例如 points[0] = x0、points[1] = y0、points[2] = x1、points[3] = y1。参数 num_points 为多边形的转折点数目。参数 col 表示多边形线的颜色。


函数:ImagePSBBox()

图形处理函数库

ImagePSBBox

计算 PostScript 文字所占区域。

语法: array imagepsbbox(string text, int font, int size, int space, int width, float angle);

返回值: 数组

函数种类: 图形处理

内容说明

本函数用来计算并返回 PostScript 文字区域框 (bounding box) 大小。参数 text 为要写入的字符串。参数 font 则为指定的字型。参数 size 为字的大小，单位为像素 (pixel)。参数 width 为的宽度。angle 为角度。返回数组有四个元素，第一、二个分别为左下角的 x,y 值，第三、四个元素为右上角的 x,y 值。

参考

ImagePSText()


函数:ImagePSEncodeFont()

图形处理函数库

ImagePSEncodeFont

PostScript 字型转成向量字。

语法: int imagepsencodefont(string encodingfile);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将 PostScript Type1 字型转换成向量字。若需要西方语衔募特殊文字则要 T1lib 函数库。目前 T1lib 提供 IsoLatin1.enc 和 IsoLatin2.enc 二套字。若常要使用向量字，可以在 php3.ini/php.ini 中配置 ps.default_encoding，PHP 系统会自动载入转换。

参考

ImagePSLoadFont()


函数:ImagePSFreeFont()

图形处理函数库

ImagePSFreeFont

卸下 PostScript 字型。

语法: void imagepsfreefont(int fontindex);

返回值: 整数

函数种类: 图形处理

内容说明

本函数将已载入 PostScript Type1 字型卸下。参数 fontindex 为载入 PostScript Type1 字型的 handle。

参考

ImagePSLoadFont()


函数:ImagePSLoadFont()

图形处理函数库

ImagePSLoadFont

载入 PostScript 字型。

语法: int imagepsloadfont(string filename);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来载入 PostScript Type1 字型。参数 filename 为 PostScript Type1 字型的名称。

参考

ImagePSFreeFont()


函数:ImagePSText()

图形处理函数库

ImagePSText

写 PostScript 文字到图中。

语法: array imagepstext(int image, string text, int font, int size, int foreground, int background, int x, int y, int space, int tightness, float angle, int antialias_steps);

返回值: 数组

函数种类: 图形处理

内容说明

本函数将 PostScript Type1 字型文字写入图片。参数 image 为图形。text 参数为要写入的字符串。参数 font 则为指定的字型。参数 size 为字的大小，单位为像素 (pixel)。参数 foreground 及 background 分别为前景及背景色，程序会依这二色来修正文字边晕募锯齿。参数 x,y 为文字的坐标，以左下角开始计算。space 参数为文字间的空隔大小。参数 tightness 为单字间的紧密度。angle 为角度。最后一个参数 antialias_steps 为边缘锯齿状修正的等级，范围为 4 至 16。返回数组有四个元素，第一、二个分别为左下角的 x,y 值，第三、四个元素为右上角的 x,y 值。

参考

ImagePSBBox()


函数:ImageRectangle()

图形处理函数库

ImageRectangle

绘矩形。

语法: int imagerectangle(int im, int x1, int y1, int x2, int y2, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数可在图片上绘出长方形。参数 x1、y1 及 x2、y2 分别为矩形对角线的坐标。参数 col 表示矩形边框的颜色。


函数:ImageSetPixel()

图形处理函数库

ImageSetPixel

绘点。

语法: int imagesetpixel(int im, int x, int y, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数可在图片上绘出一点。参数 x、y 为欲绘点的坐标，参数 col 表示该点的颜色。


函数:ImageString()

图形处理函数库

ImageString

绘横式字符串。

语法: int imagestring(int im, int font, int x, int y, string s, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数在图片上绘出水平的横式字符串。参数 font 为字形，设为 1 到 5 表示使用默认字形。参数 x、y 为字符串起点坐标。字符串的内容放在参数 s 上。参数 col 表示字符串的颜色。

参考

ImageLoadFont()


函数:ImageStringUp()

图形处理函数库

ImageStringUp

绘直式字符串。

语法: int imagestringup(int im, int font, int x, int y, string s, int col);

返回值: 整数

函数种类: 图形处理

内容说明

本函数在图片上绘出铅直的直式字符串。参数 font 为字形，设为 1 到 5 表示使用默认字形。参数 x、y 为字符串起点坐标。字符串的内容放在参数 s 上。参数 col 表示字符串的颜色。

参考

ImageLoadFont()


函数:ImageSX()

图形处理函数库

ImageSX

取得图片的宽度。

语法: int imagesx(int im);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来取得图片的宽度数值。


函数:ImageSY()

图形处理函数库

ImageSY

取得图片的高度。

语法: int imagesy(int im);

返回值: 整数

函数种类: 图形处理

内容说明

本函数用来取得图片的高度数值。


函数:ImageTTFBBox()

图形处理函数库

ImageTTFBBox

计算 TTF 文字所占区域。

语法: array ImageTTFBBox(int size, int angle, string fontfile, string text);

返回值: 数组

函数种类: 图形处理

内容说明

本函数用来计算并返回 TTF 文字区域框 (bounding box) 大小。参数 size 为字形的尺寸；angle 为字型的角度；fontfile 为字型文件名称，亦可是远端的文件；text 当然就是字符串内容了。返回值为数组，包括了八个元素，头二个分别为左下的 x、y 坐标，第三、四个为右下角的 x、y 坐标，第五、六及七、八二组分别为右上及左上的 x、y 坐标。治募注意的是欲使用本函数，系统要装妥 GD 及 Freetype 二个函数库。


函数:ImageTTFText()

图形处理函数库

ImageTTFText

写 TTF 文字到图中。

语法: array ImageTTFText(int im, int size, int angle, int x, int y, int col, string fontfile, string text);

返回值: 数组

函数种类: 图形处理

内容说明

本函数将 TTF (TrueType Fonts) 字型文字写入图片。参数 size 为字形的尺寸；angle 为字型的角度，顺时针计算，0 度为水平，也就是三点钟的方向 (由左到右)，90 度则为由下到上的文字；x,y 二参数为文字的坐标值 (原点为左上角)；参数 col 为字的颜色；fontfile 为字型文件名称，亦可是远端的文件；text 当然就是字符串内容了。返回值为数组，包括了八个元素，头二个分别为左下的 x、y 坐标，第三、四个为右下角的 x、y 坐标，第五、六及七、八二组分别为右上及左上的 x、y 坐标。治募注意的是欲使用本函数，系统要装妥 GD 及 Freetype 二个函数库。

使用范例

本例建立一个 400x30 pixel 大小的黑底图，并用 Arial 向量字体写出 I am NUMBER ONE !! 的白字。

<?php
Header("Content-type: image/gif");
$im = imagecreate(400,30);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
ImageTTFText($im, 20, 0, 10, 20, $white, "/somewhere/arial.ttf", "I am NUMBER ONE !!");
ImageGif($im);
ImageDestroy($im);
?>

参考

ImageTTFBBox()


函数:imap_8bit()

IMAP 电子邮件系统函数库

imap_8bit

将八位转成 qp 编码。

语法: string imap_8bit(string string);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可将八位字符串转成 QP (quoted-printable) 编码字符串。

参考


函数:imap_alerts()

IMAP 电子邮件系统函数库

imap_alerts

所有的警告信息。

语法: array imap_alerts(void);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来显示所有出现的 IMAP 警告字符串。本函数不需要使用任何参数。


函数:imap_append()

IMAP 电子邮件系统函数库

imap_append

附加字符串到指定的邮箱中。

语法: int imap_append(int imap_stream, string mbox, string message, string [flags]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可在指定的电子邮箱中增加附加的字符串。参数 imap_stream 为 IMAP 的代号。参数 mbox 为电子邮箱的位址。参数 message 为欲附加的信息。参数 flag 为可省略的标志，表示电子邮箱的标志值。治募注意的是要与 Cyrus IMAP 服务器沟通时，应使用 \r\n 作为行结束字符 (end-of-line, EOL)。若有错误则返回 false 值。


函数:imap_base64()

IMAP 电子邮件系统函数库

imap_base64

解 BASE64 编码。

语法: string imap_base64(string text);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可将用 BASE64 编码字符串解码。返回值是解码后的字符串。

参考


函数:imap_binary()

IMAP 电子邮件系统函数库

imap_binary

将八位转成 base64 编码。

语法: string imap_binary(string string);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数将字符串转成 MIME BASE64 编码。此编码方式可以让中文字或者图片也能在网络上顺利传输。更多的 BASE64 编码信息可以参考 RFC2045 文件之 6.8 节或是 base64_encode()。

参考


函数:imap_body()

IMAP 电子邮件系统函数库

imap_body

读信的内文。

语法: string imap_body(int imap_stream, int msg_number, int [flags]);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可读取信件的内文 (body) 部份。参数 imap_stream 为 IMAP 的代号。参数 msg_number 为信件的序号。参数 flags 可省略，有下列的值

  • FT_UID : 信件序号为 UID。
  • FT_PEEK : 若无配置 \Seen 标志则不要设本标志。
  • FT_INTERNAL : 返回字符串使用系统格式，不要刻意转成 CRLF 行结束标准。

使用范例

本例利用 IMAP 协议读取 myid@localhost 的第一封信件。

<?php
$mbox = imap_open("{localhost:143}INBOX","myid","mypw");
$message = imap_body($mbox, 1);
imap_close($mbox);
echo $message;
?>


函数:imap_check()

IMAP 电子邮件系统函数库

imap_check

返回邮箱信息。

语法: object imap_check(int imap_stream);

返回值: 类

函数种类: 网络系统

内容说明

本函数可取得目前电子邮箱的信息。返回值为类类型，包含下面的属性

类属性 | 代表意义说明
Date | 最新邮件的日期
Driver | 使用的界面
Mailbox | 电子邮箱网址
Nmsgs | 总邮件数目
Recent | 新进邮件数目

参考

imap_mailboxmsginfo()


函数:imap_clearflag_full()

IMAP 电子邮件系统函数库

imap_clearflag_full

清除信件标志。

语法: imap_clearflag_full(int imap_stream, string sequence, string flag, int [options]);

返回值: 无

函数种类: 网络系统

内容说明

本函数可指定连续信件而清除标志。参数 imap_stream 为 IMAP 的代号。参数 sequence 为特定的部分序号。参数 flag 为欲配置的标志值，包括 Seen、Answered、Flagged、Deleted、Draft 及 Recent。参数 options 可省略，可为 ST_UID。


函数:imap_close()

IMAP 电子邮件系统函数库

imap_close

关闭 IMAP 链接。

语法: int imap_close(int imap_stream, int [flags]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来关闭 IMAP 的资料流，亦即结束链接。可省略的参数 flags 的值若为 CL_EXPUNGE 则在关闭链接前会将电子邮件信箱清空。


函数:imap_createmailbox()

IMAP 电子邮件系统函数库

imap_createmailbox

建立新的信箱。

语法: int imap_createmailbox(int imap_stream, string mbox);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来建立新的信箱。成功则返回 true 值。


函数:imap_delete()

IMAP 电子邮件系统函数库

imap_delete

标记欲删除邮件。

语法: int imap_delete(int imap_stream, int msg_number);

返回值: 整数

函数种类: 网络系统

内容说明

本函数仅用来标记欲删除之邮件。实际删除的指令 imap_expunge()


函数:imap_deletemailbox()

IMAP 电子邮件系统函数库

imap_deletemailbox

删除既有信箱。

语法: int imap_deletemailbox(int imap_stream, string mbox);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来删除既有的信箱。成功则返回 true 值。


函数:imap_errors()

IMAP 电子邮件系统函数库

imap_errors

所有的错误信息。

语法: array imap_errors(void);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来显示所有出现的 IMAP 错误字符串。本函数不需要使用任何参数。


函数:imap_expunge()

IMAP 电子邮件系统函数库

imap_expunge

删除已标记的邮件。

语法: int imap_expunge(int imap_stream);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来删除已加入删除标记的邮件。欲标记邮件须使用 imap_delete() 函数。


函数:imap_fetchbody()

IMAP 电子邮件系统函数库

imap_fetchbody

从信件内文取出指定部分。

语法: string imap_fetchbody(int imap_stream, int msg_number, string part_number, flags [flags]);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可读取信件的内文 (body) 部份。参数 imap_stream 为 IMAP 的代号。参数 msg_number 为信件的序号。参数 part_number 为指定的部分。参数 flags 可省略，有下列的值

  • FT_UID : 信件序号为 UID。
  • FT_PEEK : 若无配置 \Seen 标志则不要设本标志。
  • FT_INTERNAL : 返回字符串使用系统格式，不要刻意转成 CRLF 行结束标准。


函数:imap_fetchheader()

IMAP 电子邮件系统函数库

imap_fetchheader

取得原始标头。

语法: string imap_fetchheader(int imap_stream, int msg_no, int [options]);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数将信件标头排序。参数 imap_stream 为 IMAP 的代号。参数 msg_no 为信件序号。参数 options 可省略，其值有下列数种

  • FT_UID : 信件序号为 UID。
  • FT_INTERNAL : 返回字符串使用系统格式，不要刻意转成 CRLF 行结束标准。
  • FT_PREFETCHTEXT : 去掉额外的 RTT。


函数:imap_fetchstructure()

IMAP 电子邮件系统函数库

imap_fetchstructure

获取某信件的结构信息。

语法: array imap_fetchstructure(int imap_stream, int msg_number);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可读取指定信件的相关信息。参数 imap_stream 为 IMAP 的代号。参数 msg_number 为信件的序号。返回的信息为数组的方式，各元素的内容见下表

元素名称 | 类型
type | 整数 (Integer)
encoding | 整数 (Integer)
ifsubtype | 布尔 (Boolean)
subtype | 字符串 (String)
ifdescription | 布尔 (Boolean)
description | 字符串 (String)
ifid | 布尔 (Boolean)
id | 字符串 (String)
lines | 整数 (Integer)
bytes | 整数 (Integer)
ifparameters | 布尔 (Boolean)

其中 type 元素的值代表的意义如下

值 | 代表意义
0 | 文字 text
1 | 复合 multipart
2 | 信息 message
3 | 程序 application
4 | 声音 audio
5 | 图形 image
6 | 影像 video
7 | 其它 other

而 encoding 值代表的意义如下

值 | 代表意义
0 | 七位 (7 bit)
1 | 八位 (8 bit)
2 | 二进位 (binary)
3 | BASE64 编码
4 | QP 编码 (QuotedPrintable)
5 | 其它


函数:imap_getmailboxes()

IMAP 电子邮件系统函数库

imap_getmailboxes

取得全部信件详细信息。

语法: object imap_getmailboxes(int imap_stream, string ref, string pattern);

返回值: 类

函数种类: 网络系统

内容说明

本函用来检查 IMAP 服务器信件的详细信息。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 服务器名称，如 "{mail.wahaha.com:143}"。参数 pattern 为解析比对字符串的规则。


函数:imap_getsubscribed()

IMAP 电子邮件系统函数库

imap_getsubscribed

列出所有订阅邮箱。

语法: array imap_getsubscribed(int imap_stream, string ref, string pattern);

返回值: 数组

函数种类: 网络系统

内容说明

本函用来列示出所有订阅 IMAP 服务器信箱 (mailbox)。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 服务器名称，如 "{mail.wahaha.com:143}"。参数 pattern 为解析比对字符串的规则。


函数:imap_header()

IMAP 电子邮件系统函数库

imap_header

获取某信件的标头信息。

语法: object imap_header(int imap_stream, int msg_number, int [fromlength], int [subjectlength], int [defaulthost]);

返回值: 类

函数种类: 网络系统

内容说明

本函数可读取指定信件的标头信息。参数 msg_number 为信件的序号。返回类有下列的属性：Answered、bcc、bccaddress、cc、ccaddress、Date、date、Deleted、fetchfrom、fetchsubject、Flagged、followup_to、from、fromaddress、in_reply_to、MailDate、message_id、Msgno、newsgroups、Recent、references、remail、reply_to、reply_toaddress、return_path、return_pathaddress、sender、senderaddress、Size、Subject、subject、to、toaddress、udate、Unseen。


函数:imap_headers()

IMAP 电子邮件系统函数库

imap_headers

获取全部信件的标头信息。

语法: array imap_headers(int imap_stream);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可读取全部信件的标头信息。参数 imap_stream 为 IMAP 的代号。返回的数组一个元素为某一封信的标头。

使用范例

<?php
$mb = imap_open("{my.imap.com.tw}INBOX", "wilson", "mypasswd");
$AllHeaders = imap_headers($mb);
imap_close($mb);
echo "<pre>\n";
for ($i=0; $i < count($AllHeaders); $i++) {
echo $AllHeaders[$i]."<p><hr><p>\n";
}
echo "</pre>\n";
?>


函数:imap_last_error()

IMAP 电子邮件系统函数库

imap_last_error

最后的错误信息。

语法: string imap_last_error(void);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来显示最后出现的 IMAP 错误字符串。本函数不需要使用任何参数。


函数:imap_listmailbox()

IMAP 电子邮件系统函数库

imap_listmailbox

获取邮箱列示。

语法: array imap_listmailbox(int stream_id, string ref, string pattern);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可获得邮箱列示。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 服务器名称，参考下例。参数 pattern 可用万用字符 * 代表全部的路径，aayawa@yahoo.com 并指出 (27-Apr-1999) 若本参数以 "" (空字符) 代入，不会返回资料。

使用范例

本例为 alank@shermanloan.com 于 02-Jun-1999 所提出的。

<?php
$Account = "myid";
$Password= "mypasswd";
$mailbox = imap_open("{mail.xyz.com:143}INBOX", $Account, $Password);
if ($mailbox) {
$mailboxes = imap_listmailbox($mailbox, "{mail.xyz.com:143}", "*");
for ($index = 0; $index < count($mailboxes); $index++) {
print($mailboxes[$index] . "\n");
}
imap_close($mailbox);
} else {
print("无法?/font>}启 $Account 的信箱.\n");
}
?>


函数:imap_listsubscribed()

IMAP 电子邮件系统函数库

imap_listsubscribed

获取订阅邮箱列示。

语法: array imap_listsubscribed(int stream_id, string ref, string pattern);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可获得订阅邮箱 (subscribed) 列示。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 服务器名称。参数 pattern 可用万用字符 * 代表全部的路径。

参考


函数:imap_mail_copy()

IMAP 电子邮件系统函数库

imap_mail_copy

复制指定信件到它处邮箱。

语法: int imap_mail_copy(int imap_stream, string msglist, string mbox, int [flags]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数复制指定的信件到指定的邮箱 (mailbox) 之中。参数 imap_stream 为 IMAP 的代号。参数 msglist 可以是信件号序，也可以是范围。参数 mbox 为复制的目的邮箱。参数 flags 可省略，有二种选择 CP_UID，CP_MOVE。


函数:imap_mail_move()

IMAP 电子邮件系统函数库

imap_mail_move

移动指定信件到它处邮箱。

语法: int imap_mail_move(int imap_stream, string msglist, string mbox);

返回值: 整数

函数种类: 网络系统

内容说明

本函数移动指定的信件到指定的邮箱 (mailbox) 之中。参数 imap_stream 为 IMAP 的代号。参数 msglist 可以是信件号序，也可以是范围。参数 mbox 为移动的目的邮箱。


函数:imap_mailboxmsginfo()

IMAP 电子邮件系统函数库

imap_mailboxmsginfo

取得目前邮箱的信息。

语法: object imap_mailboxmsginfo(int imap_stream);

返回值: 类

函数种类: 网络系统

内容说明

本函用来取得目前使用中邮箱 (mailbox) 的相关信息。参数 imap_stream 为 IMAP 的代号。返回类包括下列的属性

类属性 | 代表意义说明
Date | 最新邮件的日期
Driver | 使用的界面
Mailbox | 电子邮箱网址
Nmsgs | 总邮件数目
Recent | 新进邮件数目
Unread | 未读邮件数目
Size | 邮箱大小

参考

imap_check()


函数:imap_msgno()

IMAP 电子邮件系统函数库

imap_msgno

列出 UID 的连续信件。

语法: int imap_msgno(int imap_stream, int uid);

返回值: 整数

函数种类: 网络系统

内容说明

本函用来列示指定 UID 的连续信件。参数 imap_stream 为 IMAP 的代号。参数 UID 为用户代号。


函数:imap_num_msg()

IMAP 电子邮件系统函数库

imap_num_msg

取得信件数。

语法: int imap_num_msg(int imap_stream);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可取得邮箱 (mailbox) 的信件数。参数 imap_stream 为 IMAP 的代号。


函数:imap_num_recent()

IMAP 电子邮件系统函数库

imap_num_recent

取得新进信件数。

语法: int imap_num_recent(int imap_stream);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可取得邮箱 (mailbox) 的新进未读信件数。参数 imap_stream 为 IMAP 的代号。


函数:imap_open()

IMAP 电子邮件系统函数库

imap_open

打开 IMAP 链接。

语法: int imap_open(string mailbox, string username, string password, int [flags]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可打开客户端与服务器之间的 IMAP 链接，并可链接至 POP3 或 NNTP 服务器。参数 mailbox 为服务器端的位置。参数 username 为用户帐号。参数 password 为用户的密码。参数 flags 可省略，有下列的值：

  • OP_READONLY : 打开链接使用只读状态。
  • OP_ANONYMOUS : 匿名读取 NNTP 服务器，不使用 .newsrc 文件。
  • OP_HALFOPEN : 只与 IMAP 或 NNTP 服务器链接，不打开邮箱。
  • CL_EXPUNGE : 关闭链接时自动清除邮箱中的信件。

使用范例

下例分别为打开 IMAP、POP3、NNTP 的部份参考范例

<?php
$mbox = imap_open("{localhost:143}INBOX","user_id","password");
?/font>}启与 IMAP 服务器链接，IMAP 的埠 (port) 通?/font>`为 143。
$mbox = imap_open("{localhost/pop3:110}INBOX","user_id","password");
\\ ?/font>}启与 POP3 服务器链接，POP3 的埠值为 110。
$nntp = imap_open("{localhost/nntp:119}comp.test","","");
\\ ?/font>}启与 NNTP 服务器链接，NNTP 的埠为 119。
?>


函数:imap_ping()

IMAP 电子邮件系统函数库

imap_ping

检查 IMAP 是否连接。

语法: int imap_ping(int imap_stream);

返回值: 整数

函数种类: 网络系统

内容说明

本函用来检查与 IMAP 服务器的连接状态。参数 imap_stream 为 IMAP 的代号。若仍然保持与 IMAP 服务器连接则返回 true 值。


函数:imap_qprint()

IMAP 电子邮件系统函数库

imap_qprint

将 qp 编码转成八位。

语法: string imap_qprint(string string);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可将 QP (quoted-printable) 编码字符串转成八位字符串。

参考


函数:imap_renamemailbox()

IMAP 电子邮件系统函数库

imap_renamemailbox

更改邮箱名字。

语法: int imap_renamemailbox(int imap_stream, string old_mbox, string new_mbox);

返回值: 整数

函数种类: 网络系统

内容说明

本函用来更改邮箱 (mailbox) 的名字。参数 imap_stream 为 IMAP 的代号。参数 old_mbox 及 new_mbox 分别为原邮箱名字及欲更换成的新邮箱名字。更换成功则返回 true 值。


函数:imap_reopen()

IMAP 电子邮件系统函数库

imap_reopen

重开 IMAP 链接。

语法: int imap_reopen(string imap_stream, string mailbox, string [flags]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可重新打开客户端与服务器之间的 IMAP 链接。本函数通常与 imap_ping() 函数合用。参数 mailbox 为服务器端的位置。参数 flags 可省略，有下列的值：

  • OP_READONLY : 打开链接使用只读状态。
  • OP_ANONYMOUS : 匿名读取 NNTP 服务器，不使用 .newsrc 文件。
  • OP_HALFOPEN : 只与 IMAP 或 NNTP 服务器链接，不打开邮箱。
  • CL_EXPUNGE : 关闭链接时自动清除邮箱中的信件。

使用范例

<?php
$userid = "nulluser";
$passwd = "passwd38";
$mb = imap_open("(imap.null.org)INBOX", $userid, $passwd);
if (!imap_ping($mb)) {
imap_reopen($mb, $userid, $passwd);
}
imap_close($mb);
?>


函数:imap_rfc822_parse_adrlist()

IMAP 电子邮件系统函数库

imap_rfc822_parse_adrlist

解析电子邮件位址。

语法: object imap_rfc822_parse_adrlist(string address, string default_host);

返回值: 类

函数种类: 网络系统

内容说明

本函数可解析电子邮件位址。返回的类包括下列属性

属性名 | 说明
mailbox | 用户名称
host | 服务器名称
personal | 个人名字
adl | 所在来源绕路


函数:imap_rfc822_write_address()

IMAP 电子邮件系统函数库

imap_rfc822_write_address

电子邮件位址标准化。

语法: string imap_rfc822_write_address(string mailbox, string host, string personal);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数将电子邮件位址成为 rfc822 的标准格式。


函数:imap_scanmailbox()

IMAP 电子邮件系统函数库

imap_scanmailbox

寻找信件有无特定字符串。

语法: array imap_scanmailbox(int imap_stream, string ref, string pattern, string content);

返回值: 数组

函数种类: 网络系统

内容说明

本函用来检查与 IMAP 服务器信件中有无特定的字符串。参数 imap_stream 为 IMAP 的代号。参数 ref 通常为 IMAP 服务器名称，如 "{mail.wahaha.com:143}"。参数 pattern 为解析比对字符串的规则。参数 content 则为欲寻找的字符串内容。


函数:imap_search()

IMAP 电子邮件系统函数库

imap_search

搜寻指定标准的信件。

语法: array imap_search(int imap_stream, string criteria, int flags);

返回值: 数组

函数种类: 网络系统

内容说明

本函用来搜寻合乎指定条件的信件。参数 imap_stream 为 IMAP 的代号。参数 criteria 为指定的条件，各字段以空格 (space) 分开，条件见下表。参数 flags 为 SE_UID。

条件 | 说明
ALL | 返回所有合乎标准的信件
ANSWERED | 信件有配置 \\ANSWERED 标志者
BCC "字符串" | Bcc 栏中有指定 "字符串" 的信件
BEFORE "日期" | 指定 "日期" 以前的信件
BODY "字符串" | 内文字段中有指定 "字符串" 的信件
CC "字符串" | Cc 栏中有指定 "字符串" 的信件
DELETED | 合乎已删除的信件
FLAGGED | 信件有配置 \\FLAGGED 标志者
FROM "字符串" | From 栏中有指定 "字符串" 的信件
KEYWORD "字符串" | 关键字为指定 "字符串" 者
NEW | 新的信件
OLD | 旧的信件
ON "日期" | 指定 "日期" 的信件
RECENT | 信件有配置 \\RECENT 标志者
SEEN | 信件有配置 \\SEEN 标志者
SINCE "日期" | 指定 "日期" 之后的信件
SUBJECT "字符串" | Subject 栏中有指定 "字符串" 的信件
TEXT "字符串" | Text 栏中有指定 "字符串" 的信件
TO "字符串" | To 栏中有指定 "字符串" 的信件
UNANSWERED | 未回应的信件
UNDELETED | 未删除的信件
UNFLAGGED | 未配置标志的信件
UNKEYWORD "字符串" | 未配置关键 "字符串" 的信件
UNSEEN | 未读取的信件


函数:imap_setflag_full()

IMAP 电子邮件系统函数库

imap_setflag_full

配置信件标志。

语法: int imap_setflag_full(int imap_stream, string sequence, string flag, int [options]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可指定连续信件而配置标志。参数 imap_stream 为 IMAP 的代号。参数 sequence 为特定的部分序号。参数 flag 为欲配置的标志值，包括 Seen、Answered、Flagged、Deleted、Draft 及 Recent。参数 options 可省略，可为 ST_UID。


函数:imap_sort()

IMAP 电子邮件系统函数库

imap_sort

将信件标头排序。

语法: array imap_sort(int imap_stream, int criteria, int reverse, int [options]);

返回值: 数组

函数种类: 网络系统

内容说明

本函数将信件标头排序。参数 imap_stream 为 IMAP 的代号。参数 criteria 的意义见下表，并只能是下表的其中一项

排序方法 | 说明
SORTDATE | 依发信日期排序
SORTARRIVAL | 依抵达日期排序
SORTFROM | 依寄件人排序
SORTSUBJECT | 依主题排序
SORTTO | 依收件人排序
SORTCC | 依副本寄送处排序
SORTSIZE | 依信件大小排序

参数 reverse 值为 0 时表由小到大排序，若值为 1 表由大到小排序。参数 options 可省略，有下列的值: SE_UID 与 SE_NOPREFETCH。


函数:imap_status()

IMAP 电子邮件系统函数库

imap_status

目前的状态信息。

语法: object imap_status(int imap_stream, string mailbox, int options);

返回值: 类

函数种类: 网络系统

内容说明

本函数用来显示目前 IMAP 的状态信息。参数 imap_stream 为 IMAP 的代号。参数 mailbox 为指定的邮箱。参数 options 有下面的选择：SA_MESSAGES、SA_RECENT、SA_UNSEEN、SA_UIDNEXT、SA_UIDVALIDITY 与 SA_ALL。


函数:imap_subscribe()

IMAP 电子邮件系统函数库

imap_subscribe

订阅邮箱。

语法: int imap_subscribe(int imap_stream, string mbox);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可订阅新邮箱 (mailbox)。


函数:imap_uid()

IMAP 电子邮件系统函数库

imap_uid

取得信件 UID。

语法: string imap_uid(string mailbox, int msgno);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数可取得指定信件的 UID。参数 mailbox 为邮箱名。参数 msgno 为信件序号。


函数:imap_undelete()

IMAP 电子邮件系统函数库

imap_undelete

取消删除邮件标记。

语法: int imap_undelete(int imap_stream, int msg_number);

返回值: 整数

函数种类: 网络系统

内容说明

本函数将标记欲删除邮件取消。标记欲删除邮件需使用 imap_delete()。参数 msg_number 代表邮件的流水序号。


函数:imap_unsubscribe()

IMAP 电子邮件系统函数库

imap_unsubscribe

取消订阅邮箱。

语法: int imap_unsubscribe(int imap_stream, string mbox);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可取消订阅新邮箱 (mailbox)。


函数:implode()

字符串处理函数库

implode

将数组变成字符串。

语法: string implode(string glue, array pieces);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将数组的内容组合成一个字符串，参数 glue 是字之间的分隔符号。

使用范例

<?
$colon_separated = implode(":", $array);
echo $colon_separated;
?>

参考


函数:intval()

变量处理函数库

intval

变量转成整数类型。

语法: int intval(mixed var, int [base]);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数可将变量转成整数类型。可省略的参数 base 是转换的基底，默认值为 10。转换的变量 var 可以为数组或类之外的任何类型变量。

参考


函数:iptcparse()

杂项函数库

iptcparse

使用 IPTC 模块解析位资料。

语法: array iptcparse(string iptcblock);

返回值: 数组

函数种类: 图形处理

内容说明

本函数利用 IPTC 模块解析图形的位资料中的 APP13 信息。IPTC 模块可到 http://www.xe.net/iptc 下载。若执行失败或者没有 APP13 的 IPTC 资料时返回 false。

使用范例

<?php
$size = GetImageSize("testimg.jpg",&$info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>


函数:is_array()

变量处理函数库

is_array

判断变量类型是否为数组类型。

语法: int is_array(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为数组类型则返回 true，否则返回 false。

参考


函数:is_dir()

文件系统函数库

is_dir

测试文件是否为目录。

语法: boolean is_dir(string filename);

返回值: 布尔值

函数种类: 文件存取

内容说明

本函数返回 true 值则表示指定的 filename 为目录名称。返回值放在快取缓冲区中，可以参考 clearstatcache()。

注意: php@wastelan.com (11-Jun-1999) 指出若用 is_dir("..");
的方式，返回的也是 true。

参考


函数:is_double()

变量处理函数库

is_double

判断变量类型是否为倍浮点数类型。

语法: int is_double(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为倍浮点数类型则返回 true，否则返回 false。

参考


函数:is_executable()

文件系统函数库

is_executable

测试文件是否为可执行文件。

语法: boolean is_executable(string filename);

返回值: 布尔值

函数种类: 文件存取

内容说明

本函数返回 true 值则表示指定的 filename 存在并为可执行文件。返回值放在快取缓冲区中，可以参考 clearstatcache()。

参考


函数:is_file()

文件系统函数库

is_file

测试文件是否为正常文件。

语法: boolean is_file(string filename);

返回值: 布尔值

函数种类: 文件存取

内容说明

本函数返回 true 值则表示指定的 filename 存在并为正常的文件。返回值放在快取缓冲区中，可以参考 clearstatcache()。

参考


函数:is_float()

变量处理函数库

is_float

判断变量类型是否为浮点数类型。

语法: int is_float(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为浮点数类型则返回 true，否则返回 false。

参考


函数:is_int()

变量处理函数库

is_int

判断变量类型是否为整数类型。

语法: int is_int(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为整数类型则返回 true，否则返回 false。

参考


函数:is_integer()

变量处理函数库

is_integer

判断变量类型是否为长整数类型。

语法: int is_integer(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为长整数类型则返回 true，否则返回 false。本函数其实就是 is_long()。

参考


函数:is_link()

文件系统函数库

is_link

测试文件是否为链接文件。

语法: boolean is_link(string filename);

返回值: 布尔值

函数种类: 文件存取

内容说明

本函数返回 true 值则表示指定的 filename 存在并为符号链接文件 (symbolic link)。返回值放在快取缓冲区中，可以参考 clearstatcache()。

参考


函数:is_long()

变量处理函数库

is_long

判断变量类型是否为长整数类型。

语法: int is_long(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为长整数类型则返回 true，否则返回 false。

参考


函数:is_object()

变量处理函数库

is_object

判断变量类型是否为类类型。

语法: int is_object(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为类类型则返回 true，否则返回 false。

参考


函数:is_readable()

文件系统函数库

is_readable

测试文件是否可读取。

语法: boolean is_readable(string filename);

返回值: 布尔值

函数种类: 文件存取

内容说明

本函数返回 true 值则表示指定的 filename 存在并且可读取。返回值放在快取缓冲区中，参考 clearstatcache()。

参考

is_writeable()


函数:is_real()

变量处理函数库

is_real

判断变量类型是否为实数类型。

语法: int is_real(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为实数类型则返回 true，否则返回 false。

参考


函数:is_string()

变量处理函数库

is_string

判断变量类型是否为字符串类型。

语法: int is_string(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

若变量为字符串类型则返回 true，否则返回 false。

参考


函数:is_writeable()

文件系统函数库

is_writeable

测试文件是否可写入。

语法: boolean is_writeable(string filename);

返回值: 布尔值

函数种类: 文件存取

内容说明

本函数返回 true 值则表示指定的 filename 存在并且可读取。参数 filename 也可以是目录名称，用来测试该目录是否可写入。返回值放在快取缓冲区中，参考 clearstatcache()。

参考

readable()


函数:isset()

变量处理函数库

isset

判断变量是否已配置。

语法: int isset(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数用来测试变量是否已经配置。若变量已存在则返回 true 值。其它情形返回 false 值。

使用范例

<?php
$a = "test";
echo isset($a); // true
unset($a);
echo isset($a); // false
?>

参考


函数:JDDayOfWeek()

历法函数库

JDDayOfWeek

返回日期在周几。

语法: mixed jddayofweek(int julianday, int mode);

返回值: 混合类型

函数种类: 时间日期

内容说明

本函数返回日期在当周的天数，返回值依 mode 值决定，详见下表。

Mode | 代表义意
0 | 返回周几为整数值 (0 为周日, 1 为周一... 余类推)
1 | 返回字符串为周几 (英文-格里高里历)
2 | 返回字符串为周几的缩写 (英文-格里高里历)

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:JDMonthName()

历法函数库

JDMonthName

返回月份名。

语法: string jdmonthname(int julianday, int mode);

返回值: 字符串

函数种类: 时间日期

内容说明

本函数返回指定历法的月份字符串。参数 mode 为历法名称，详见下表。

Mode | 代表义意
0 | 格里高里历 (缩写)
1 | 格里高里历
2 | 凯撒历 (缩写)
3 | 凯撒历
4 | 犹太历
5 | 法国共和历


函数:JDToFrench()

历法函数库

JDToFrench

将凯撒日计数转换成为法国共和历法。

语法: string jdtofrench(int month, int day, int year);

返回值: 字符串

函数种类: 时间日期

内容说明

将凯撒历法的日期计数转换成为法国共和历法字符串，并以 "月份/日期/年" (month/day/year) 的字符串返回。


函数:JDToGregorian()

历法函数库

JDToGregorian

将凯撒日计数 (Julian Day Count) 转换成为格里高里历法 (Gregorian date)。

语法: string jdtogregorian(int julianday);

返回值: 字符串

函数种类: 时间日期

内容说明

将凯撒历法的日期计数转换成为格里高里历法字符串，并以"月份/日期/年" (month/day/year) 的字符串返回。格里高里历为教皇格梩高里十三世在公元 1582 年颁行的历法。


函数:JDToJewish()

历法函数库

JDToJewish

将凯撒日计数转换成为犹太历法。

语法: string jdtojewish(int julianday);

返回值: 字符串

函数种类: 时间日期

内容说明

将凯撒历法的日期计数转换成为犹太历法字符串，并以"月份/日期/年" (month/day/year) 的字符串返回。


函数:JDToJulian()

历法函数库

JDToJulian

将凯撒日计数转换成为凯撒历法。

语法: string jdtojulian(int julianday);

返回值: 字符串

函数种类: 时间日期

内容说明

将凯撒历法的日期计数转换成为凯撒历法字符串，并以"月份/日期/年" (month/day/year) 的字符串返回。


函数:JewishToJD()

历法函数库

JewishToJD

将犹太历法转换成为凯撒日计数。

语法: int jewishtojd(int month, int day, int year);

返回值: 整数

函数种类: 时间日期

内容说明

有效的范围为犹太历法公元前 3761 年起。犹太历法存在了数千年，但早期并没有公式化的开始月份计算法。每年的第一个月为首次观测到的新月。


函数:join()

字符串处理函数库

join

将数组变成字符串。

语法: string join(string glue, array pieces);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数是 implode 函数的别名。


函数:JulianToJD()

历法函数库

JulianToJD

将凯撒历法转换成为凯撒日计数。

语法: int juliantojd(int month, int day, int year);

返回值: 整数

函数种类: 时间日期

内容说明

有效的范围为凯撒历法公元前 4713 年至公元 9999 年。这套软件能计算到公元前 4713 年，但这是不太有意义的。凯撒历法是在公元前 46 年建立的，但一些细节等到公元 8 年才稳定下来。


函数:key()

数组处理函数库

key

取得数组中的索引资料。

语法: mixed key(array array);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

本函数从目前数组的指针，返回其索引。

参考


函数:ksort()

数组处理函数库

ksort

将数组的元素依索引排序。

语法: void ksort(array array);

返回值: 无

函数种类: 资料处理

内容说明

本函数将数组中的元素依索引排序，排序后的索引和值仍然对应。

使用范例

<?
$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple");
ksort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>

上面的例子，返回的资料为
fruits[a] = orange
fruits[b] = banana
fruits[c] = apple
fruits[d] = lemon

参考


函数:ldap_add()

LDAP 目录协议函数库

ldap_add

增加 LDAP 名录的条目。

语法: boolean ldap_add(int handle, string dn, array entry);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来加入新的条目到 LDAP 名录之中。参数 handle 为打开 LDAP 的代号。参数 dn 为要加入条目的具体 dn 字符串。参数 entry 为数组，为个体所有的条目，数组的内容是条目的相关信息。若无错误则返回 true 值。

使用范例

<?php
$ds=ldap_connect("localhost"); // 连上 LDAP 服务器
if ($ds) {
// 系住恰当的 dn
$r=ldap_bind($ds,"cn=root, o=A2Z Company, c=TW", "secret");
// 预先准备好新条目的资料
$info["cn"]="Wilson Peng";
$info["sn"]="Peng";
$info["mail"]="wilson@wilson.gs";
$info["objectclass"]="person";
// 加入新条目
$r=ldap_add($ds, "cn=Wilson Peng, o=A2Z Company, c=TW", $info);
ldap_close($ds);
} else {
echo "抱歉，无法连上 LDAP 服务器。";
}
?>


函数:ldap_bind()

LDAP 目录协议函数库

ldap_bind

系住 LDAP 目录。

语法: boolean ldap_bind(int handle, string [bind_rdn], string [bind_password]);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来系住特定的 RDN 和用户密码。参数 handle 为打开 LDAP 的代号。参数 bind_rdn 及 bind_password 可省略。当未指定用户的 RDN 及密码时，则系住匿名用户。若无错误则返回 true 值。


函数:ldap_close()

LDAP 目录协议函数库

ldap_close

结束 LDAP 链接。

语法: boolean ldap_close(int handle);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数将关闭与 LDAP 服务器的链接。参数 handle 为打开 LDAP 的代号。实际上这个函数就是 ldap_unbind() 的别名而已。若无错误则返回 true 值。

参考

ldap_unbind()


函数:ldap_connect()

LDAP 目录协议函数库

ldap_connect

连上 LDAP 服务器。

语法: int ldap_connect(string [hostname], int [port]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来链接 LDAP 的服务器。参数 hostname 若省略，则返回现在的链接代号，也就是 handle。参数 port 亦可省略，默认值为 389。执行若无错误则返回链接代号，发生错误则返回 false。


函数:ldap_count_entries()

LDAP 目录协议函数库

ldap_count_entries

搜寻结果的数目。

语法: int ldap_count_entries(int handle, int result_identifier);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得搜寻的结果数目。参数 handle 为打开 LDAD 服务器的代号。参数 result_identifier 为 ldap_search() 所返回的搜寻代号。执行若无错误则返回寻找到的数目，发生错误则返回 false。


函数:ldap_delete()

LDAP 目录协议函数库

ldap_delete

删除指定资源。

语法: boolean ldap_delete(int handle, string dn);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来删除指定 dn 的资料。参数 handle 为打开 LDAD 服务器的代号。参数 dn 为指定的显名 (distinguished name)。发生错误则返回 false，若无错误则返回 true。


函数:ldap_dn2ufn()

LDAP 目录协议函数库

ldap_dn2ufn

将 dn 转成易读的名字。

语法: string ldap_dn2ufn(string dn);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来转换 dn 的名字成为较易读取的名字 ufn (User Friendly Name)。参数 dn 为欲转换的字符串。返回值即为 ufn 字符串。


函数:ldap_explode_dn()

LDAP 目录协议函数库

ldap_explode_dn

切开 dn 的字段。

语法: array ldap_explode_dn(string dn, int attrib);

返回值: 数组

函数种类: 网络系统

内容说明

本函数将 dn 中的各字段切开，切开后的每个字段即为 RDN (Relative Distinguished Name)。参数 dn 为欲切开的字符串。参数 attrib 若为 0 表示返回该栏的属性，若为 1 则表示返回该栏的值。返回值置于数组之中。


函数:ldap_first_attribute()

LDAP 目录协议函数库

ldap_first_attribute

取得第一笔资源的属性。

语法: string ldap_first_attribute(int handle, int result_entry_identifier, int ber_identifier);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 中第一笔资源的属性。参数 handle 为打开 LDAP 的代号。参数 result_entry_identifier 将由 ldap_next_attribute() 沿用。参数 ber_identifier 为指针，意即需在前面加上 & 符号。

参考


函数:ldap_first_entry()

LDAP 目录协议函数库

ldap_first_entry

取得第一笔结果代号。

语法: int ldap_first_entry(int handle, int result_identifier);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 中第一笔结果的代号 ID。参数 handle 为打开 LDAP 的代号。参数 result_identifier 为 ldap_search() 所返回的搜寻代号。若有错误则返回 false。

参考

ldap_get_entries()


函数:ldap_free_result()

LDAP 目录协议函数库

ldap_free_result

释放返回资料内存。

语法: int ldap_free_result(int result_identifier);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来释放返回资料所使用的内存。若没有使用本函数释放内存，程序结束时也会自动释放。


函数:ldap_get_attributes()

LDAP 目录协议函数库

ldap_get_attributes

取得返回资料的属性。

语法: array ldap_get_attributes(int handle, int result_entry_identifier);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 中所有资源的属性。参数 handle 为打开 LDAP 的代号。参数 result_entry_identifier 将由 ldap_next_attribute() 沿用。返回值为数组资料，数组元素从零开始依次为属性的值。例如

return_value["count"] : 属性个数
return_value[0] : 第一个属性
return_value[n] : 第n+1个属性
return_value["attribute"]["count"] : 属性值个数
return_value["attribute"][0] : 第一个属性值
return_value["attribute"][i] : 第i+1个属性值

使用范例

下面范例为片段的程序

<?php
$entry = ldap_first_entry($ds, $sr);
$attrs = ldap_get_attributes($ds, $entry);
echo $attrs["count"]." 笔属性资料如下:<p>\n";
for ($i=0; $i<$attrs["count"]; $i++) {
echo $attrs[$i]."<br>";
}
?>

参考


函数:ldap_get_dn()

LDAP 目录协议函数库

ldap_get_dn

取得 DN 值。

语法: string ldap_get_dn(int handle, int result_entry_identifier);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 的显名 (DN, distinguished name)字符串值。参数 handle 为打开 LDAP 的代号。参数 result_identifier 为 ldap_search() 所返回的搜寻代号。若有错误则返回 false。


函数:ldap_get_entries()

LDAP 目录协议函数库

ldap_get_entries

取得全部返回资料。

语法: array ldap_get_entries(int handle, int result_identifier);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 的全部返回资料。参数 handle 为打开 LDAP 的代号。返回值为数组资料，例如

return_value["count"] : 返回资料笔数
return_value[0] : 第一笔返回资料
return_value[i]["dn"] : 第 i+1 笔资料的 DN
return_value[i]["count"] : 第 i+1 笔资料的数目
return_value[i][j] : 第 i+1 笔资料的第 j 值
return_value[i]["attribute"]["count"] : 第 i+1 笔资料的属性数
return_value[i]["attribute"][j] : 第 i+1 笔资料的第 j 个属性

参考


函数:ldap_get_values()

LDAP 目录协议函数库

ldap_get_values

取得全部返回值。

语法: array ldap_get_values(int handle, int result_entry_identifier, string attribute);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 的全部返回资料值。参数 handle 为打开 LDAP 的代号。参数 attribute 有 surname 及 mail 二种。返回值为数组资料值，例如

return_value["count"] : 属性值总数
return_value[0] : 第一个属性值
return_value[i] : 第 i+1 个属性值

使用范例

下例为片段程序

<?
$values = ldap_get_values($ds, $entry, "mail");
echo $values["count"]." 笔电子邮件地址: <p>\n";
for ($i=0; $i < $values["count"]; $i++) {
echo $values[$i]."<br>";
}
?>


函数:ldap_list()

LDAP 目录协议函数库

ldap_list

列出简表。

语法: int ldap_list(int handle, string base_dn, string filter, array [attributes]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来列出单层 (One Level) 的资料，实际上它等于ldap_searchldap_search()，只是将值域改成 LDAP_SCOPE_ONELEVEL，本函数作用有点像 DOS 的 dir 或是 UNIX 的 ls。参数 handle 为打开 LDAP 的代号。参数 base_dn 为最基本的 dn 条件值，例如包括 o 和 c 二字段。参数 filter 为布尔条件，它的语法可以在 Netscape 站上找一份 dirsdkpg.pdf 文件，其中的 Search Syntax 一部份有详细的说明。参数 attributes 可省略，用来配置更细的列出属性。

使用范例

这个范例为片段程序

<?php
$basedn = "o=SuperPHP Company, c=TW";
$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_mod_add()

LDAP 目录协议函数库

ldap_mod_add

增加 LDAP 名录的属性。

语法: boolean ldap_mod_add(int handle, string dn, array entry);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来加入新的属性到 LDAP 名录之中。参数 handle 为打开 LDAP 的代号。参数 dn 为要加入条目的具体 dn 字符串。参数 entry 为数组，为个体所有的属性，数组的内容是名录属性的相关信息。若无错误则返回 true 值。

参考

ldap_modify()


函数:ldap_mod_del()

LDAP 目录协议函数库

ldap_mod_del

删除 LDAP 名录的属性。

语法: boolean ldap_mod_del(int handle, string dn, array entry);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来删除到 LDAP 名录之中的指定属性。参数 handle 为打开 LDAP 的代号。参数 dn 为要加入条目的具体 dn 字符串。参数 entry 为数组，为个体所有的属性，数组的内容是名录属性的相关信息。若无错误则返回 true 值。


函数:ldap_mod_replace()

LDAP 目录协议函数库

ldap_mod_replace

新的 LDAP 名录取代旧属性。

语法: boolean ldap_mod_replace(int handle, string dn, array entry);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来用新的指定属性取代 LDAP 名录之中的属性。参数 handle 为打开 LDAP 的代号。参数 dn 为要加入条目的具体 dn 字符串。参数 entry 为数组，为个体所有的属性，数组的内容是名录属性的相关信息。若无错误则返回 true 值。


函数:ldap_modify()

LDAP 目录协议函数库

ldap_modify

改变 LDAP 名录的属性。

语法: boolean ldap_modify(int handle, string dn, array entry);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来改变 LDAP 服务器上目前所在名录上的属性。参数 handle 为打开 LDAP 的代号。参数 dn 为要加入条目的具体 dn 字符串。参数 entry 为数组，为个体所有的属性，数组的内容是名录属性的相关信息。若无错误则返回 true 值。

使用范例

本例为 nickt@powys.gov.uk 提出的片段 (23-Apr-1999)

<?php
$newinfo[mail]="nick@county.gov.uk";
ldap_modify($valid_ldaplink, $valid_dn, $newinfo);
?>

参考

ldap_mod_add()


函数:ldap_next_attribute()

LDAP 目录协议函数库

ldap_next_attribute

取得返回资料的下笔属性。

语法: string ldap_next_attribute(int handle, int result_entry_identifier, int ber_identifier);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 中所在返回的下笔属性。参数 handle 为打开 LDAP 的代号。参数 result_entry_identifier 将由 ldap_next_attribute() 沿用。参数 ber_identifier 为指针，意即需在前面加上 & 符号。

参考


函数:ldap_next_entry()

LDAP 目录协议函数库

ldap_next_entry

取得下一笔结果代号。

语法: int ldap_next_entry(int handle, int result_entry_identifier);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得 LDAP 中目前指针的下笔资料代号。参数 handle 为打开 LDAP 的代号。参数 result_identifier 为 ldap_search() 所返回的搜寻代号。若有错误则返回 false。

参考


函数:ldap_read()

LDAP 目录协议函数库

ldap_read

取得目前的资料属性。

语法: int ldap_read(int handle, string base_dn, string filter, array [attributes]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来列出树状资料，它的值域条件是 LDAP_SCOPE_BASE。参数 handle 为打开 LDAP 的代号。参数 base_dn 为最基本的 dn 条件值，例如包括 o 和 c 二字段。参数 filter 为布尔条件，它的语法可以在 Netscape 站上找一份 dirsdkpg.pdf 文件，其中的 Search Syntax 一部份有详细的说明。参数 attributes 可省略，用来配置更细的列出属性。

参考


函数:ldap_search()

LDAP 目录协议函数库

ldap_search

列出树状简表。

语法: int ldap_search(int handle, string base_dn, string filter, array [attributes]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来列出树状资料，它的值域条件是 LDAP_SCOPE_SUBTREE。参数 handle 为打开 LDAP 的代号。参数 base_dn 为最基本的 dn 条件值，例如包括 o 和 c 二字段。参数 filter 为布尔条件，它的语法可以在 Netscape 站上找一份 dirsdkpg.pdf 文件，其中的 Search Syntax 一部份有详细的说明。参数 attributes 可省略，用来配置更细的列出属性。

使用范例

下面范例为片段程序

<?php
$dn = "o=SuperLDAP Company, c=TW";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array( "ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
print $info["count"]." entries returned<p>";
?>

参考


函数:ldap_unbind()

LDAP 目录协议函数库

ldap_unbind

结束 LDAP 链接。

语法: boolean ldap_unbind(int handle);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数将关闭与 LDAP 服务器的链接。参数 handle 为打开 LDAP 的代号。若无错误则返回 true 值。

参考

ldap_close()


函数:leak()

杂项函数库

leak

泄出内存。

语法: void leak(int bytes);

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数用来系统除错使用。通常在执行某一回应后可自动清除泄出的内存。


函数:link()

文件系统函数库

link

建立硬式链接。

语法: int link(string target, string link);

返回值: 整数

函数种类: 文件存取

内容说明

本函数建立硬式链接，用来将参数 link 链接至 target。

参考


函数:linkinfo()

文件系统函数库

linkinfo

取得链接信息。

语法: int linkinfo(string path);

返回值: 整数

函数种类: 文件存取

内容说明

本函数使用系统呼叫 lstat，返回 UNIX 上 C 语言 stat 结构类型的 st_dev 字段。返回 0 或 false 表示发生错误。

参考


函数:list()

数组处理函数库

list

列出数组中元素的值。

语法: void list(...);

返回值: 无

函数种类: 资料处理

内容说明

和 array 函数一样，不算是正规的函数。list() 函数用在列出所有数组中的数值。

使用范例

下面的范例列出从 MySQL 数据库返回的数组资料。
<table>
<tr>
<th>员工姓名</th>
<th>薪资</th>
</tr>
<?php

$result = mysql($conn, "SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
print(" <tr>\n".
" <td><a href=\"info.php3?id=$id\">$name</a></td>\n".
" <td>$salary</td>\n".
" </tr>\n");
}

?></table>

参考


函数:Log()

数学运算函数库

Log

自然对数值。

语法: float log(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数计算参数 arg 的自然对数 (natural logarithm) 值。


函数:Log10()

数学运算函数库

Log10

10 基底的对数值。

语法: float log10(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数计算参数 arg 的 10 基底对数值。


函数:lstat()

文件系统函数库

lstat

取得链接文件相关信息。

语法: array lstat(string filename);

返回值: 数组

函数种类: 文件存取

内容说明

本函数可蒐集链接文件的相关信息，并返回数组。数组的元素依序如下：

  1. 装置名称 (device)
  2. inode 值
  3. 链接 (link) 到该文件的总数。
  4. 拥有者的 UID
  5. 拥有者的 GID
  6. 若为字符或装置设备则为装置类型 (限系统支持 st_blksize 方有效，Windows 系列返回 -1)
  7. 位组为单位的文件长度
  8. 最后存取时间
  9. 最后修改时间
  10. 最后改动时间
  11. 文件系统的区块大小 (限系统支持 st_blksize 方有效，Windows 系列返回 -1)
  12. 匹配的区块数
返回值放在快取缓冲区中，参考 clearstatcache()。


函数:ltrim()

字符串处理函数库

ltrim

去除连续空白。

语法: string ltrim(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数用来删去字符串中的连续空白带 (whitespace)。


函数:mail()

电子邮件函数库

mail

寄出电子邮件。

语法: boolean mail(string to, string subject, string message, string [additional_headers]);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数寄出电子邮件到指定的邮件地址 to，subject 表示主题，message 为信件内容。额外的选项 additional_headers 可省略，表示其它的邮件文件头。

使用范例

<?
$message="abcdefghijklmnopqrstuvwxyz";
mail("php@wilson.gs", "没有主题", $message, "From: someone@wahaha.org.tw\nReply-To: reply@wahaha.org.tw\nX-Mailer: PHP/" . phpversion());
?>


函数:max()

数学运算函数库

max

取得最大值。

语法: mixed max(mixed arg1, mixed arg2 .... mixed argn);

返回值: 混合类型资料

函数种类: 数学运算

内容说明

本函数计算参数间的最大值。若第一个参数是数字数组，则会找出该数组的最大数字。若第一个参数非数组，则需二个以上的参数。这些数字可以是整数、倍精确数或数字字符串的类型。参数的数目不限，视用户的需求而定。在计算时，只要有一个参数是倍精确数，本函数会将所有的参数都转成倍精确数，并返回倍精确数。若参数只有整数及数字字符串，则会将所有的参数转换成整数，并返回整数。

参考

min()


函数:mcrypt_cbc()

mcrypt 编码函数库

mcrypt_cbc

使用 CBC 将资料加/解密。

语法: string mcrypt_cbc(int cipher, string key, string data, int mode, string [iv]);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数使用 CBC 密码检索本 (cipher block chaining)，将资料加密及解密。参数 cipher 为加/解密方式，例如 MCRYPT_TripleDES。参数 key 是密码钥匙，当然要注意保持它的机密性。欲加密或解密的字符串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 是可省略的参数，代表向量初始化 (Initialization vector, IV)。


函数:mcrypt_cfb()

mcrypt 编码函数库

mcrypt_cfb

使用 CFB 将资料加/解密。

语法: string mcrypt_cfb(int cipher, string key, string data, int mode, string iv);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数使用 CFB 密码检索本 (cipher feedback)，将资料加密及解密。参数 cipher 为加/解密方式，例如 MCRYPT_TripleDES。参数 key 是密码钥匙，当然要注意保持它的机密性。欲加密或解密的字符串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 是代表向量初始化 (Initialization vector, IV)。


函数:mcrypt_create_iv()

mcrypt 编码函数库

mcrypt_create_iv

从随机源将向量初始化。

语法: string mcrypt_create_iv(int size, int source);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数用来建立向量初始化 (Initialization vector, IV) 的值。参数 size 为指定的向量初始化治募长度。参数 source 为随机资料的来源，来源可以是 MCRYPT_RAND (系统产生的随机值)、MCRYPT_DEV_RANDOM (UNIX 系统中 /dev/random 的资料)、MCRYPT_DEV_URANDOM (UNIX 系统中 /dev/urandom 的资料)，若使用 MCRYPT_RAND 当做随机源，记得先使用 srand() 产生乱数种子。

使用范例

<?php
$cipher = MCRYPT_TripleDES;
$block_size = mcrypt_get_block_size($cipher);
$iv = mcrypt_create_iv($block_size, MCRYPT_DEV_RANDOM);
?>


函数:mcrypt_ecb()

mcrypt 编码函数库

mcrypt_ecb

使用 ECB 将资料加/解密。

语法: string mcrypt_ecb(int cipher, string key, string data, int mode);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数使用 ECB 密码检索本 (electronic codebook)，将资料加密及解密。参数 cipher 为加/解密方式，例如 MCRYPT_TripleDES。参数 key 是密码钥匙，当然要注意保持它的机密性。欲加密或解密的字符串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。


函数:mcrypt_get_block_size()

mcrypt 编码函数库

mcrypt_get_block_size

取得编码方式的区块大小。

语法: int mcrypt_get_block_size(int cipher);

返回值: 整数

函数种类: 编码处理

内容说明

本函数用来取得编码方式的区块大小。参数为编码名称，返回整数治募单位为位组 (byte)。


函数:mcrypt_get_cipher_name()

mcrypt 编码函数库

mcrypt_get_cipher_name

取得编码方式的名称。

语法: string mcrypt_get_cipher_name(int cipher);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数用来取得编码方式的名称。返回值为名称字符串，若没有指定的编码方式则返回 false 或输入的名称。

使用范例

下例会输出 TripleDES 字符串。

<?php
$cipher = MCRYPT_TripleDES;
print mcrypt_get_cipher_name($cipher);
?>


函数:mcrypt_get_key_size()

mcrypt 编码函数库

mcrypt_get_key_size

取得编码钥匙大小。

语法: int mcrypt_get_key_size(int cipher);

返回值: 整数

函数种类: 编码处理

内容说明

本函数用来取得编码钥匙的大小。参数为编码名称，返回整数治募单位为位组 (byte)。


函数:mcrypt_ofb()

mcrypt 编码函数库

mcrypt_ofb

使用 OFB 将资料加/解密。

语法: string mcrypt_ofb(int cipher, string key, string data, int mode, string iv);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数使用 OFB 密码检索本 (output feedback)，将资料加密及解密。参数 cipher 为加/解密方式，例如 MCRYPT_TripleDES。参数 key 是密码钥匙，当然要注意保持它的机密性。欲加密或解密的字符串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 为向量初始化 (Initialization vector, IV)。


函数:md5()

字符串处理函数库

md5

计算字符串的 MD5 哈稀。

语法: string md5(string str);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数用来计算 MD5 哈稀。关于 MD5 编码法，可以参考 RSA Data Security, Inc. MD5 Message-Digest Algorithm. RFC1321；或是赖溪松、韩亮、张真诚等合着之近代密码学及其应用，11.3。


函数:mhash()

mhash 哈稀函数库

mhash

计算哈稀值。

语法: string mhash(int hash, string data);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数依指定的哈稀演算法计算哈稀值。参数 hash 为指定的哈稀演算法；参数 data 为欲计算的字符串值。


函数:mhash_count()

mhash 哈稀函数库

mhash_count

取得哈稀 ID 的最大值。

语法: int mhash_count(void);

返回值: 整数

函数种类: 编码处理

内容说明

本函数用来取得哈稀演算的最大 ID 值。在使用哈稀计算时，会从 0 开始计数到使用的数值。本函数不用输入参数。

使用范例

<?php
$nr = mhash_count();
for($i = 0; $i <= $nr; $i++) {
echo sprintf("哈稀 %s 的区块大小为 %d\n", mhash_get_hash_name($i), mhash_get_block_size($i));
}
?>


函数:mhash_get_block_size()

mhash 哈稀函数库

mhash_get_block_size

取得哈稀方式的区块大小。

语法: int mhash_get_block_size(int hash);

返回值: 整数

函数种类: 编码处理

内容说明

本函数用来取得哈稀演算的区块大小。参数为编码名称，返回整数治募单位为位组 (byte)。


函数:mhash_get_hash_name()

mhash 哈稀函数库

mhash_get_hash_name

取得哈稀演算法名称。

语法: string mhash_get_hash_name(int hash);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数取得哈稀演算法的名称。返回值为名称字符串，若没有指定的哈稀演算法则返回 false 或输入的名称。

使用范例

下例返回的字符串为 MD5。

<?php
$hash = MHASH_MD5;
print mhash_get_hash_name($hash);
?>


函数:microtime()

日期与时间函数库

microtime

取得目前时间的 UNIX 时间戳记的百万分之一秒值。

语法: string microtime(void);

返回值: 字符串

函数种类: 时间日期

内容说明

返回目前时间的百万分之一秒戳记值。若操作系统没有提供 gettimeofday() 的系统呼叫函数，则本函数亦无效。

参考

time()


函数:min()

数学运算函数库

min

取得最小值。

语法: mixed min(mixed arg1, mixed arg2 .... mixed argn);

返回值: 混合类型资料

函数种类: 数学运算

内容说明

本函数计算参数间的最小值。若第一个参数是数字数组，则会找出该数组的最小数字。若第一个参数非数组，则需二个以上的参数。这些数字可以是整数、倍精确数或数字字符串的类型。参数的数目不限，视用户的需求而定。在计算时，只要有一个参数是倍精确数，本函数会将所有的参数都转成倍精确数，并返回倍精确数。若参数只有整数及数字字符串，则会将所有的参数转换成整数，并返回整数。

参考

max()


函数:mkdir()

文件系统函数库

mkdir

建立目录。

语法: int mkdir(string pathname, int mode);

返回值: 整数

函数种类: 文件存取

内容说明

本函数建立参数 pathname 目录，参数 mode 以八进位的方式指定 (在参数前加 0) 比较不会出错。返回 true 表示成功，失败则返回 false。

使用范例

下例就是用八进位的例子，建立 /path/to/my/dir 目录，该目录只有拥有者及 root 等级可读写执行，其它人无法使用。

<?php
mkdir("/path/to/my/dir", 0700);
?>

参考

rmdir()


函数:mktime()

日期与时间函数库

mktime

取得 UNIX 时间戳记。

语法: int mktime(int hour, int minute, int second, int month, int day, int year);

返回值: 整数

函数种类: 时间日期

内容说明

输入一个时间，则返回 UNIX 时间戳记的长整数。

使用范例

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

参考


函数:msql()

mSQL 数据库函数库

msql

送出 query 字符串。

语法: int msql(string database, string query, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可送出 query 字符串到指定的 database 之中，在旧版的 PHP 程序，本函数为 msql_db_query()。参数 database 为资料载 (database) 的名称。参数 query 为欲对数据库下的指令字符串。参数 link_identifier 可省略，为数据库连接的代号。执行正常则返回数据库存取代号，发生错误则返回 false 值。

参考

msql_query()


函数:msql_affected_rows()

mSQL 数据库函数库

msql_affected_rows

得到 mSQL 最后操作影响的列数目。

语法: int msql_affected_rows(int query_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取得 mSQL 在最后查询操作 query 指令后所影响的列 (row) 数目，例如使用 UPDATE、DELETE 等指令。参数 query_identifier 为使用 msql_query() 或 msql() 时所打开的数据库存取代号值。

参考


函数:msql_close()

mSQL 数据库函数库

msql_close

关闭 mSQL 数据库连接。

语法: boolean msql_close(int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数关闭与 mSQL 数据库服务器的连接。若无指定参数 link_identifier 则会关闭最后的一笔连接。用 msql_pconnect() 连接则无法使用本函数关闭。实际上本函数不是一定需要的，当 PHP 整页程序结束后，将会自动关闭与数据库的非永久性 (non-persistent) 连接。成功返回 true、失败返回 false 值。

参考


函数:msql_connect()

mSQL 数据库函数库

msql_connect

打开 mSQL 数据库连接。

语法: int msql_connect(string [hostname[:port]], string [username], string [password]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数建立与 mSQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时，参数 hostname 的默认值为 localhost。而参数 hostname 后面可以加冒号与埠号，代表使用那个埠与 mSQL 连接。当然在使用数据库时，早点使用 msql_close() 将连接关掉可以节省资源。

参考


函数:msql_create_db()

mSQL 数据库函数库

msql_create_db

建立一个新的 mSQL 数据库。

语法: boolean msql_create_db(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来建立新的数据库 (database)。在建立前，必须先与服务器连接。若无使用参数 link_identifier，则使用最后的连接代号。

参考

msql_drop_db()


函数:msql_createdb()

mSQL 数据库函数库

msql_createdb

建立一个新的 mSQL 数据库。

语法: boolean msql_createdb(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来建立新的数据库 (database)，这个函数其实也就是 msql_create_db()。

参考

msql_drop_db()


函数:msql_data_seek()

mSQL 数据库函数库

msql_data_seek

移动内部返回指针。

语法: boolean msql_data_seek(int query_identifier, int row_number);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数可移动内部返回的列指针到指定的 row_number 去。之后若使用 msql_fetch_row() 可以返回新列的值。参数 query_identifier 为指令 (query) 代号。成功返回 true、失败则返回 false。

参考

msql_fetch_row()


函数:msql_dbname()

mSQL 数据库函数库

msql_dbname

取得目前所在数据库名称。

语法: string msql_dbname(int query_identifier, int i);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得目前所在的数据库 (database) 名称。参数 query_identifier 为指令 (query) 代号。参数 i 为使用 msql_listdbs() 所返回的数据库指针。本函数返回值为数据库名称字符串。


函数:msql_drop_db()

mSQL 数据库函数库

msql_drop_db

删除指定的 mSQL 数据库。

语法: boolean msql_drop_db(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来删除指定的数据库 (database)。在删除前，注意须与服务器连接。参数 database_name 为欲删除的数据库名称。若无使用参数 link_identifier，则使用最后的连接代号。删除成功则返回 true，失败则返回 false。

参考

msql_create_db()


函数:msql_dropdb()

mSQL 数据库函数库

msql_dropdb

删除指定的 mSQL 数据库。

语法: boolean msql_dropdb(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来删除指定的数据库 (database)，这个函数和 msql_drop_db() 是完全相同的。在删除前，注意须与服务器连接。参数 database_name为欲删除的数据库名称。若无使用参数 link_identifier，则使用最后的连接代号。删除成功则返回 true，失败则返回 false。

参考


函数:msql_error()

mSQL 数据库函数库

msql_error

取得最后错误信息。

语法: string msql_error(int [link_identifier]);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 mSQL 数据库的最后错误信息字符串。若无使用参数 link_identifier，则使用最后的连接代号。


函数:msql_fetch_array()

mSQL 数据库函数库

msql_fetch_array

返回数组资料。

语法: array msql_fetch_array(int query_identifier);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果分割到数组变量中。可以将本函数当作是 msql_fetch_row() 的加强版。

使用范例

<?php
echo "<ol type=A>\n";
$handle = msql_connect("localhost");
msql_selectdb("userinfo", $handle);
$dbresult=msql_query("select * from info", $handle);
while($dbarray=msql_fetch_array($dbresult)) {
echo "<li>".$dbarray["IDNumber"]."\n";
}
msql_close($handle);
echo "</ol>\n";
?>


函数:msql_fetch_field()

mSQL 数据库函数库

msql_fetch_field

取得字段信息。

语法: object msql_fetch_field(int query_identifier, int [field_offset]);

返回值: 类

函数种类: 数据库功能

内容说明

本函数返回的类资料为 query_identifier 的字段 (Column) 信息。返回类的属性如下：

  • name - 字段名称
  • table - 字段所在表格的资料表名称
  • not_null - 若为 1 表示本字段不能是空的 (null)
  • primary_key - 若为 1 表示本字段是主要键 (primary key)
  • unique_key - 若为 1 表示本字段为不可重覆键 (unique key)
  • type - 字段类型

参考

msql_field_seek()


函数:msql_fetch_object()

mSQL 数据库函数库

msql_fetch_object

返回类资料。

语法: object msql_fetch_object(int query_identifier);

返回值: 类

函数种类: 数据库功能

内容说明

本函数用来将查询结果 query_identifier 拆到类变量中。使用方法和 msql_fetch_array() 几乎相同，不同的地方在于本函数返回资料是类而不是数组。若 query_identifier 没有资料，则返回 false 值。另外治募注意的地方是，取回的类资料的索引只能是文字而不能用数字，这是因为类的特性。类资料的特性中所有的属性 (property) 名称都不能是数字。关于速度方面，本函数的处理速度几乎和 msql_fetch_array()、msql_fetch_row() 二函数差不多，要用哪个函数还是看使用的需求决定。

参考


函数:msql_fetch_row()

mSQL 数据库函数库

msql_fetch_row

返回单列的各字段。

语法: array msql_fetch_row(int query_identifier);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 query_identifier 之单列拆到数组变量中。数组的索引是数字索引，第一个的索引值是 0。若 query_identifier 没有资料，则返回 false 值。

参考


函数:msql_field_seek()

mSQL 数据库函数库

msql_field_seek

配置指针到返回治募某字段。

语法: int msql_field_seek(int query_identifier, int field_offset);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数配置目前的指针到返回治募特定字段中。参数 query_identifier 为查询结果的 ID 代码。参数 field_offset 为第几个字段。

参考

msql_fetch_field()


函数:msql_fieldflags()

mSQL 数据库函数库

msql_fieldflags

获得字段的标志。

语法: string msql_fieldflags(int query_identifier, int field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的标志。参数 query_identifier 为查询结果的 ID 代码。参数 field 为第几个字段的数字。返回的标志字符串可能是：not null、primary key 或二者都有或者是空字符串 (表 null)。


函数:msql_fieldlen()

mSQL 数据库函数库

msql_fieldlen

获得字段的长度。

语法: int msql_fieldlen(int query_identifier, int field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的长度。参数 query_identifier 为查询结果的 ID 代码。参数 field 为第几个字段的数字。


函数:msql_fieldname()

mSQL 数据库函数库

msql_fieldname

返回指定字段的名称。

语法: string msql_fieldname(int query_identifier, int field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得指定字段的名称。参数 query_identifier 为查询结果的 ID 代码。参数 field 为第几个字段的数字。


函数:msql_fieldtable()

mSQL 数据库函数库

msql_fieldtable

获得字段的资料表 (table) 名称。

语法: int msql_fieldtable(int query_identifier, int field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的资料表名。


函数:msql_fieldtype()

mSQL 数据库函数库

msql_fieldtype

获得字段的类型。

语法: string msql_fieldtype(int query_identifier, int field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的类型格式。参数 query_identifier 为查询结果的 ID 代码。参数 field 为第几个字段的数字。返回的字符串为字段的类型，包括了 int、string、real 等三种类型。


函数:msql_free_result()

mSQL 数据库函数库

msql_free_result

释放返回占用内存。

语法: int msql_free_result(int query_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以释放目前 mSQL 数据库 query 所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放内存。


函数:msql_freeresult()

mSQL 数据库函数库

msql_freeresult

释放返回占用内存。

语法: int msql_freeresult(int query_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以释放目前 mSQL 数据库 query 所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。本函数和 msql_free_result() 一样。


函数:msql_list_dbs()

mSQL 数据库函数库

msql_list_dbs

列出可用数据库 (database)。

语法: int msql_list_dbs(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到 mSQL 服务器的可用数据库。参数 link_identifier 可省略。


函数:msql_list_fields()

mSQL 数据库函数库

msql_list_fields

列出指定资料表的字段 (field)。

语法: int msql_list_fields(string database, string tablename, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到指定的资料表的所有字段。参数 database 为数据库名称。参数 tablename 为资料表名称。参数 link_identifier 可省略，为连接的代码。返回的字段信息可以供 msql_fieldflags()、msql_fieldlen()、msql_fieldname() 和 msql_fieldtype() 等函数使用。若有错误则返回 -1。


函数:msql_list_tables()

mSQL 数据库函数库

msql_list_tables

列出指定数据库的资料表 (table)。

语法: int msql_list_tables(string database, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到指定数据库中的所有资料表名称。参数 database 为指定的数据库名称。参数 link_identifier 可省略。


函数:msql_listdbs()

mSQL 数据库函数库

msql_listdbs

列出可用数据库 (database)。

语法: int msql_listdbs(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到 mSQL 服务器的可用数据库。参数 link_identifier 可省略。本函数和 msql_list_dbs() 相同。


函数:msql_listfields()

mSQL 数据库函数库

msql_listfields

列出指定资料表的字段 (field)。

语法: int msql_listfields(string database, string tablename, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到指定的资料表的所有字段。参数 database 为数据库名称。参数 tablename 为资料表名称。参数 link_identifier 可省略，为连接的代码。返回的字段信息可以供 msql_fieldflags()、msql_fieldlen()、msql_fieldname() 和 msql_fieldtype() 等函数使用。若有错误则返回 -1。本函数和 msql_list_fields() 相同。


函数:msql_listtables()

mSQL 数据库函数库

msql_listtables

列出指定数据库的资料表 (table)。

语法: int msql_listtables(string database, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到指定数据库中的所有资料表名称。参数 database 为指定的数据库名称。参数 link_identifier 可省略。本函数和 msql_list_tables() 相同。


函数:msql_num_fields()

mSQL 数据库函数库

msql_num_fields

取得返回字段的数目。

语法: int msql_num_fields(int query_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回字段的数目。参数 query_identifier 为查询的代号。

参考


函数:msql_num_rows()

mSQL 数据库函数库

msql_num_rows

取得返回列的数目。

语法: int msql_num_rows(int query_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回列的数目。参数 query_identifier 为查询的代号。


函数:msql_numfields()

mSQL 数据库函数库

msql_numfields

取得返回字段的数目。

语法: int msql_numfields(int query_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回字段的数目。参数 query_identifier 为查询的代号。本函数和 msql_num_fields() 相同。

参考


函数:msql_numrows()

mSQL 数据库函数库

msql_numrows

取得返回列的数目。

语法: int msql_numrows(int query_identifier);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回列的数目。参数 query_identifier 为查询的代号。本函数和 msql_num_rows() 相同。


函数:msql_pconnect()

mSQL 数据库函数库

msql_pconnect

打开 mSQL 服务器持续连接。

语法: int msql_pconnect(string [hostname[:port]] , string [username] , string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数和 msql_connect() 用法及参数均雷同。不同的处在于使用本函数打开数据库时，程序会先寻找是否曾经执行过本函数，若执行过则返回先前执行的 ID。另一个不同的地方是本函数无法使用 msql_close() 关闭数据库。


函数:msql_query()

mSQL 数据库函数库

msql_query

送出一个 query 字符串。

语法: int msql_query(string query, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数送出 query 字符串供 mSQL 做相关的处理或者执行。参数 query 为合乎 SQL 语法的 query 字符串。若没有指定 link_identifier 参数，则程序会自动寻找最近打开的 ID。

参考


函数:msql_regcase()

mSQL 数据库函数库

msql_regcase

将字符串逐字返回大小写字符。

语法: string msql_regcase(string string);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数可将字符串之字符逐字返回大小写。在 PHP 使用上，本函数没有什么作用，但可能可以提供外部程序或数据库处理。本函数即 sql_regcase()。


函数:msql_result()

mSQL 数据库函数库

msql_result

取得查询 (query) 的结果。

语法: int msql_result(int query_identifier, int row, mixed [field]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取得一格 query 的结果。参数 field 可以是字段名称、顺序或者是 fieldname.tablename 的格式。在返回资料量少时，可以使用本函数来处理。当数据库大时，本函数的效率就有待考量了，这时可以使用较有效率的 msql_fetch_row()、msql_fetch_array() 或 msql_fetch_object() 等函数。


函数:msql_select_db()

mSQL 数据库函数库

msql_select_db

选择一个数据库。

语法: boolean msql_select_db(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数选择 mSQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true，失败则返回 false。

参考


函数:msql_selectdb()

mSQL 数据库函数库

msql_selectdb

选择一个数据库。

语法: boolean msql_selectdb(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数选择 mSQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true，失败则返回 false。本函数即 msql_select_db()。

参考


函数:msql_tablename()

mSQL 数据库函数库

msql_tablename

返回指定资料表的名称。

语法: string msql_tablename(int query_identifier, int field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得资料表字段的名称。参数 query_identifier 为查询结果的 ID 代码。参数 field 为第几个字段的数字。

使用范例

<?php
msql_connect ("localhost");
$result = msql_list_tables("userinfo");
$i = 0;
while ($i < msql_numrows($result)) {
$tb_names[$i] = msql_tablename($result, $i);
echo $tb_names[$i] . "<br>\n";
$i++;
}
?>


函数:mssql_affected_rows()

SQL Server 数据库函数库

mssql_affected_rows

取得最后 query 影响的列数。

语法: int mssql_affected_rows(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得最后一次对数据库下 query 指令所影响的列数，会影响的为 INSERT、UPDATE 或 DELETE 等指令，而 SELECT 不会影响。参数 link_identifier 可省略，为打开数据库的连接代号。返回值即为列数。


函数:mssql_close()

SQL Server 数据库函数库

mssql_close

关闭与数据库的连接。

语法: boolean mssql_close(int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来关闭与 MS SQL Server 数据库的连接，能关闭的为使用 mssql_connect() 函数打开的数据库，若使用 mssql_pconnect() 打开的数据库则不能以本函数关闭。参数 link_identifier 可省略，为打开数据库的连接代号。关闭成功则返回 true 值。

参考


函数:mssql_connect()

SQL Server 数据库函数库

mssql_connect

连上数据库。

语法: int mssql_connect(string [servername], string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开与 MS SQL Server 数据库的连接。参数 servername 为欲连上的数据库服务器名称。参数 username 及 password 可省略，分别为连接使用的帐号及密码。使用本函数需注意早点关闭数据库，以减少系统的负担。连接成功则返回数据库的连接代号，失败返回 false 值。

参考


函数:mssql_data_seek()

SQL Server 数据库函数库

mssql_data_seek

移动列指针。

语法: boolean mssql_data_seek(int result_identifier, int row_number);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来移动 MS SQL Server 资料表中的列指针到指定的列上，可供 mssql_fetch_row() 等函数使用。参数 result_identifier 为查询的代号值。参数 row_number 则为欲移往的列数。若失败则返回 false 值。

参考


函数:mssql_fetch_array()

SQL Server 数据库函数库

mssql_fetch_array

返回数组资料。

语法: array mssql_fetch_array(int result);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到数组变量中。若 result 没有资料，则返回 false 值。而本函数可以说是 mssql_fetch_row() 的加强函数，除可以将返回列及数字索引放入数组之外，还可以将文字索引放入数组中。


函数:mssql_fetch_field()

SQL Server 数据库函数库

mssql_fetch_field

取得字段信息。

语法: object mssql_fetch_field(int result, int field_offset);

返回值: 类

函数种类: 数据库功能

内容说明

本函数返回的类资料为 result 的字段 (Column) 信息。返回类的属性如下：

  • name - 字段名称
  • column_source -字段所在表格的资料表名称
  • max_length - 字段的最大长度
  • numeric - 若为 1 表示本字段为数字类型 (numeric)

参考

mssql_field_seek()


函数:mssql_fetch_object()

SQL Server 数据库函数库

mssql_fetch_object

返回类资料。

语法: object mssql_fetch_object(int result);

返回值: 类

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到类变量中。使用方法和 mssql_fetch_array() 几乎相同，不同的地方在于本函数返回资料是类而不是数组。若 result 没有资料，则返回 false 值。另外治募注意的地方是，取回的类资料的索引只能是文字而不能用数字，这是因为类的特性。类资料的特性中所有的属性 (property) 名称都不能是数字，因此只好乖乖使用文字字符串当索引了。关于速度方面，本函数的处理速度几乎和 mssql_fetch_array() 及 mssql_fetch_row() 二函数差不多，要用哪个函数还是看使用的需求决定。

参考


函数:mssql_fetch_row()

SQL Server 数据库函数库

mssql_fetch_row

返回单列的各字段。

语法: array mssql_fetch_row(int result);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引，第一个的索引值是 0。若 result 没有资料，则返回 false 值。

参考


函数:mssql_field_seek()

SQL Server 数据库函数库

mssql_field_seek

配置指针到返回治募某字段。

语法: int mssql_field_seek(int result, int field_offset);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数配置目前的指针到返回治募特定字段中。参数 result 为返回值代码。参数 field_offset 则为指定的字段序数。

使用范例

mssql_fetch_field


函数:mssql_free_result()

SQL Server 数据库函数库

mssql_free_result

释放返回占用内存。

语法: int mssql_free_result(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以释放目前 MS SQL Server 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放。


函数:mssql_num_fields()

SQL Server 数据库函数库

mssql_num_fields

取得返回字段的数目。

语法: int mssql_num_fields(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回字段的数目。参数 result 为返回值代码。

参考


函数:mssql_num_rows()

SQL Server 数据库函数库

mssql_num_rows

取得返回列的数目。

语法: int mssql_num_rows(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回列的数目。参数 result 为返回值代码。

参考


函数:mssql_pconnect()

SQL Server 数据库函数库

mssql_pconnect

打开 MS SQL 服务器持续连接。

语法: int mssql_pconnect(string [servername], string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数和 mssql_connect() 雷同。不同的地方在于使用本函数打开数据库时，程序会先寻找是否曾经执行过本函数，若执行过则返回先前执行的 ID。另一个不同的地方是本函数无法使用 mssql_close() 关闭数据库。参数 servername 为欲连上的数据库服务器名称。参数 username 及 password 可省略，分别为连接使用的帐号及密码。


函数:mssql_query()

SQL Server 数据库函数库

mssql_query

送出一个 query 字符串。

语法: boolean mssql_query(string query, int plink_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数送出 query 字符串供 MS SQL Server 做相关的处理或者执行。若没有指定 link_identifier 参数，则程序会自动寻找最近打开的 ID。成功则返回 true 值。


函数:mssql_result()

SQL Server 数据库函数库

mssql_result

取得查询 (query) 的结果。

语法: int mssql_result(int result, int row, mixed field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取得一格 query 的结果。参数 field 可以是字段名称、顺序或者是 fieldname.tablename 的格式。在返回资料量少时，可以使用本函数来处理。当数据库大时，本函数的效率就有待考量了，这时可以使用较有效率的 mssql_fetch_row()、mssql_fetch_array() 或 mssql_fetch_object() 等函数。


函数:mssql_select_db()

SQL Server 数据库函数库

mssql_select_db

选择一个数据库。

语法: boolean mssql_select_db(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数选择 MS SQL Server 中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true，失败则返回 false。


函数:mt_getrandmax()

数学运算函数库

mt_getrandmax

乱数的最大值。

语法: int mt_getrandmax(void);

返回值: 整数

函数种类: 数学运算

内容说明

本函数计算乱数函数 mt_rand() 可能取得的取得的最大乱数值。本函数不需参数。

参考


函数:mt_rand()

数学运算函数库

mt_rand

取得乱数值。

语法: int mt_rand([int min], [int max]);

返回值: 整数

函数种类: 数学运算

内容说明

本函数不使用一般常用的 libc 来计算乱数值，而是使用计算速度至少快四倍的马其赛特旋转 (Mersenne Twister) 演算法来计算乱数值。有关马特赛特旋转演算法可在松本真的 http://www.math.keio.ac.jp/~matumoto/emt.html 找到更多的相关信息，最佳化的原始程序则在 http://www.scp.syr.edu/~marc/hawk/twister.html。若没有指定乱数的最大及最小范围，本函数会自动的从 0 到 RAND_MAX 中取一个乱数。若有指定 min 及 max 的参数，则从指定参数中取一个数字，例如 mt_rand(38, 49) 则会从 38 到 49 之间取一个乱数值。治募注意的是为使乱数的乱度最大，每次在取乱数之前最好使用 mt_srand() 以配置新的乱数种子。

参考


函数:mt_srand()

数学运算函数库

mt_srand

配置乱数种子。

语法: void mt_srand(int seed);

返回值: 无

函数种类: 数学运算

内容说明

本函数传入参数 seed 后，配置乱数的种子。治募注意的是参数 seed 值最好也是随机出现的数字，例如利用加入时间做为变量的来源就是不错的方法，或者开发其它的硬体周边界面可取得更好的乱数。

使用范例

本例加入时间的因素，以执行时的百万分之一秒当乱数种子

<?php
mt_srand((double)microtime()*1000000);
$randval = mt_rand();
echo $randval;
?>

参考


函数:mysql_affected_rows()

MySQL 数据库函数库

mysql_affected_rows

得到 MySQL 最后操作影响的列数目。

语法: int mysql_affected_rows(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可得到 MySQL 最后查询操作 INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。若最后的查询 (query) 是使用 DELETE 而且没有使用 WHERE 命令，则会删除全部资料，本函数将返回 0。若最后使用的是 SELECT，则用本函数不会得到预期的数目，因为要改变 MySQL 数据库本函数才有效，欲得到 SELECT 返回的数目需使用 mysql_num_rows() 函数。

整理: sadly (www.phpx.com)

[ 下一页 ]


函数:mysql_close()

MySQL 数据库函数库

mysql_close

关闭 MySQL 服务器连接。

语法: int mysql_close(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数关闭与 MySQL 数据库服务器的连接。若无指定参数 link_identifier 则会关闭最后的一笔连接。用 mysql_pconnect() 连接则无法使用本函数关闭。实际上本函数不是一定需要的，当 PHP 整页程序结束后，将会自动关闭与数据库的非永久性 (non-persistent) 连接。成功返回 true、失败返回 false 值。

参考


函数:mysql_connect()

MySQL 数据库函数库

mysql_connect

打开 MySQL 服务器连接。

语法: int mysql_connect(string [hostname] [:port], string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时，参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与埠号，代表使用那个埠与 MySQL 连接。当然在使用数据库时，早点使用 mysql_close() 将连接关掉可以节省资源。

使用范例

这是一位未具名网友提供的范例 (18-Feb-1999)
<?php
$dbh = mysql_connect('localhost:3306','mcclain','standard');
mysql_select_db('admreqs');
$query = "insert into requests(date, request, email, priority,status) values (NOW(),'$description', '$email', '$priority', 'NEW')";
$res = mysql_query($query, $dbh);
$query = "select max(id) from requests";
$res = mysql_query($query, $dbh);
$err = mysql_error();
if($err){
echo "发生错误，请通知<a href=mailto:webmaster@my.site>站长</a>";
}
$row = mysql_fetch_row($res);
echo "未来您使用的号码为: ".$row[0];
?>

参考


函数:mysql_create_db()

MySQL 数据库函数库

mysql_create_db

建立一个 MySQL 新数据库。

语法: int mysql_create_db(string database name, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来建立新的数据库 (database)。在建立前，必须先与服务器连接。

参考

mysql_drop_db()


函数:mysql_data_seek()

MySQL 数据库函数库

mysql_data_seek

移动内部返回指针。

语法: int mysql_data_seek(int result_identifier, int row_number);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可移动内部返回的列指针到指定的 row_number 去。之后若使用 mysql_fetch_row() 可以返回新列的值。成功返回 true、失败则返回 false。


函数:mysql_db_query()

MySQL 数据库函数库

mysql_db_query

送查询字符串 (query) 到 MySQL 数据库。

语法: int mysql_db_query(string database, string query, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来送出查询字符串 (query) 到后端的 MySQL 数据库中。而可省略的参数 link_identifier 若不存在，程序会自动寻找其它 mysql_connect() 连接后的连接代码。发生错误时会返回 false，其它没错误时则返回它的返回代码。

参考

mysql_connect()


函数:mysql_drop_db()

MySQL 数据库函数库

mysql_drop_db

移除数据库。

语法: int mysql_drop_db(string database_name, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数移除已存在的数据库。成功返回 true、失败则返回 false。

参考

mysql_create_db()


函数:mysql_errno()

MySQL 数据库函数库

mysql_errno

返回错误信息代码。

语法: int mysql_errno(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到 MySQL 数据库服务器的错误代码。通常用在 PHP 网页程序开发阶段，作为 PHP 与 MySQL 的除错用。

使用范例

<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>

参考

mysql_error()


函数:mysql_error()

MySQL 数据库函数库

mysql_error

返回错误信息。

语法: string mysql_error(int [link_identifier]);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到 MySQL 数据库服务器的错误信息。通常用在 PHP 网页程序开发阶段，与 mysql_errno() 一起作为PHP 与 MySQL 的除错用。

参考

mysql_errno()


函数:mysql_fetch_array()

MySQL 数据库函数库

mysql_fetch_array

返回数组资料。

语法: array mysql_fetch_array(int result, int [result_typ]);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到数组变量中。若 result 没有资料，则返回 false 值。而本函数可以说是 mysql_fetch_row() 的加强函数，除可以将返回列及数字索引放入数组之外，还可以将文字索引放入数组中。若是好几个返回字段都是相同的文字名称，则最后一个置入的字段有效，解决方法是使用数字索引或者为这些同名的字段 (column) 取别名 (alias)。治募注意的是使用本函数的处理速度其实不会比 mysql_fetch_row() 函数慢，要用哪个函数还是看使用的需求决定。参数 result_typ 是一个常量值，有以下几种常量 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。

使用范例

<?php
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
echo $row["user_id"];
echo $row["fullname"];
}
mysql_free_result($result);
?>


函数:mysql_fetch_field()

MySQL 数据库函数库

mysql_fetch_field

取得字段信息。

语法: object mysql_fetch_field(int result, int [field_offset]);

返回值: 类

函数种类: 数据库功能

内容说明

本函数返回的类资料为 result 的字段 (Column) 信息。返回类的属性如下：

  • 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 表示本字段为无记号 (unsigned)
  • zerofill - 若为 1 表示本字段为被零填满 (zero-filled)

参考

mysql_field_seek()


函数:mysql_fetch_lengths()

MySQL 数据库函数库

mysql_fetch_lengths

返回单列各栏资料最大长度。

语法: array mysql_fetch_lengths(int result);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数将 mysql_fetch_row() 处理过的最后一列资料的各字段资料最大长度放在数组变量之中。若执行失败则返回 false 值。返回数组的第一笔资料索引值是 0。

参考

mysql_fetch_row()


函数:mysql_fetch_object()

MySQL 数据库函数库

mysql_fetch_object

返回类资料。

语法: object mysql_fetch_object(int result, int [result_typ]);

返回值: 类

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到类变量中。使用方法和 mysql_fetch_array() 几乎相同，不同的地方在于本函数返回资料是类而不是数组。若 result 没有资料，则返回 false 值。另外治募注意的地方是，取回的类资料的索引只能是文字而不能用数字，这是因为类的特性。类资料的特性中所有的属性 (property) 名称都不能是数字，因此只好乖乖使用文字字符串当索引了。参数 result_typ是一个常量值，有以下几种常量 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。关于速度方面，本函数的处理速度几乎和 mysql_fetch_row() 及 mysql_fetch_array() 二函数差不多，要用哪个函数还是看使用的需求决定。

使用范例

下面的例子示范如使用返回的类。

<?php
mysql_connect($host,$user,$password);
$result = mysql_db_query("MyDatabase","select * from test");
while($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_free_result($result);
?>

参考


函数:mysql_fetch_row()

MySQL 数据库函数库

mysql_fetch_row

返回单列的各字段。

语法: array mysql_fetch_row(int result);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引，第一个的索引值是 0。若 result 没有资料，则返回 false 值。

参考


函数:mysql_field_flags()

MySQL 数据库函数库

mysql_field_flags

获得目前字段的标志。

语法: string mysql_field_flags(int result, int field_offset);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的标志。若一个字段有数种属性标志，则返回的标志为这些属性连起来的字符串，每个属性都用空格隔开，可以使用 explode() 切开这些字符串。返回的标志可能是：not_null、primary_key、unique_key、multiple_key、blob、unsigned、zerofill、binary、enum、auto_increment、timestamp。


函数:mysql_field_len()

MySQL 数据库函数库

mysql_field_len

获得目前字段的长度。

语法: int mysql_field_len(int result, int field_offset);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的长度。


函数:mysql_field_name()

MySQL 数据库函数库

mysql_field_name

返回指定字段的名称。

语法: string mysql_field_name(int result, int field_index);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得指定字段的名称。

使用范例

mysql_field_name($result,2);


函数:mysql_field_seek()

MySQL 数据库函数库

mysql_field_seek

配置指针到返回治募某字段。

语法: int mysql_field_seek(int result, int field_offset);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数配置目前的指针到返回治募特定字段中。

参考

mysql_fetch_field()


函数:mysql_field_table()

MySQL 数据库函数库

mysql_field_table

获得目前字段的资料表 (table) 名称。

语法: string mysql_field_table(int result, int field_offset);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的资料表名。


函数:mysql_field_type()

MySQL 数据库函数库

mysql_field_type

获得目前字段的类型。

语法: string mysql_field_type(int result, int field_offset);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的类型格式。返回的字符串为字段的类型，包括了 int、real、string、blob....等等，详见 MySQL 的相关文件中有关于类型的部份。

使用范例

<?php
mysql_connect("localhost:3306");
mysql_select_db("wisconsin");
$result = mysql_query("SELECT * FROM onek");
$fields = mysql_num_fields($result);
$rows = mysql_num_rows($result);
$i = 0;
$table = mysql_field_table($result, $i);
echo "资料表 '".$table."' 有 ".$fields." 栏及 ".$rows." 列。<br>";
echo "本资料表的字段如下<br>";
while ($i < $fields) {
$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."<br>";
$i++;
}
mysql_close();
?>


函数:mysql_free_result()

MySQL 数据库函数库

mysql_free_result

释放返回占用内存。

语法: boolean mysql_free_result(int result);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数可以释放目前 MySQL 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放。


函数:mysql_insert_id()

MySQL 数据库函数库

mysql_insert_id

返回最后一次使用 INSERT 指令的 ID。

语法: int mysql_insert_id(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到最后一次使用 INSERT 到 MySQL 数据库的执行 ID。sleibowitz@btcwcu.org (13-May-1999) 指出在 PHP 3.0.7 版用 REPLACE 也和使用 INSERT 一样，可以使用本函数获得 ID。


函数:mysql_list_dbs()

MySQL 数据库函数库

mysql_list_dbs

列出 MySQL 服务器可用的数据库 (database)。

语法: int mysql_list_dbs(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到 MySQL 服务器的可用数据库。


函数:mysql_list_fields()

MySQL 数据库函数库

mysql_list_fields

列出指定资料表的字段 (field)。

语法: int mysql_list_fields(string database_name, string table_name, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到指定的资料表的所有字段。返回的字段信息可以供 mysql_field_flags()、mysql_field_len()、mysql_field_name() 及 mysql_field_type() 等函数使用。若有错误则返回 -1。


函数:mysql_list_tables()

MySQL 数据库函数库

mysql_list_tables

列出指定数据库的资料表 (table)。

语法: int mysql_list_tables(string database, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到指定数据库中的所有资料表名称。


函数:mysql_num_fields()

MySQL 数据库函数库

mysql_num_fields

取得返回字段的数目。

语法: int mysql_num_fields(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回字段的数目。

参考


函数:mysql_num_rows()

MySQL 数据库函数库

mysql_num_rows

取得返回列的数目。

语法: int mysql_num_rows(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回列的数目。

参考


函数:mysql_pconnect()

MySQL 数据库函数库

mysql_pconnect

打开 MySQL 服务器持续连接。

语法: int mysql_pconnect(string [hostname] [:port], string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数和 mysql_connect() 雷同。不同的地方在于使用本函数打开数据库时，程序会先寻找是否曾经执行过本函数，若执行过则返回先前执行的 ID。另一个不同的地方是本函数无法使用 mysql_close() 关闭数据库。


函数:mysql_query()

MySQL 数据库函数库

mysql_query

送出一个 query 字符串。

语法: int mysql_query(string query, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数，则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时，返回的可能是 true 或者 false；查询的字符串是 SELECT 则返回新的 ID 值。joey@samaritan.com (09-Feb-1999) 指出，当返回 false 时，并不是执行成功但无返回值，而是查询的字符串有错误。

参考


函数:mysql_result()

MySQL 数据库函数库

mysql_result

取得查询 (query) 的结果。

语法: int mysql_result(int result, int row, mixed field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取得一格 query 的结果。参数 field 可以是字段名称、顺序或者是 FieldName.TableName 的格式。在返回资料量少时，可以使用本函数来处理。当数据库大时，本函数的效率就有待考量了，这时可以使用较有效率的 mysql_fetch_row()、mysql_fetch_array() 及 mysql_fetch_object() 等函数。


函数:mysql_select_db()

MySQL 数据库函数库

mysql_select_db

选择一个数据库。

语法: int mysql_select_db(string database_name, int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true，失败则返回 false。

参考


函数:mysql_tablename()

MySQL 数据库函数库

mysql_tablename

取得资料表名称。

语法: string mysql_tablename(int result, int i);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可取得资料表名称字符串，一般配合 mysql_list_tables() 函数使用，取得该函返回的数字的名称字符串。

使用范例

<?php
mysql_connect ("localhost:3306");
$result = mysql_list_tables ("wisconsin");
$i = 0;
while ($i < mysql_num_rows ($result)) {
$tb_names[$i] = mysql_tablename ($result, $i);
echo $tb_names[$i] . "<BR>";
$i++;
}
?>


函数:next()

数组处理函数库

next

将数组的内部指针向后移动。

语法: mixed next(array array);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

这个函数返回数组下个元素的内部指针，若没有下个元素，则返回 false 值。当然，若是一个空的数组，它也返回 false 值。要正确地处理可能是空的数组，可以使用 each() 函数。此函数看起来像 current() 函数，不同地方在于本函数使指针往后指到下一个元素，并返回新的指针处的元素值，意即指针后移，并返回下一个元素值。

参考


函数:nl2br()

字符串处理函数库

nl2br

将换行字符转成 <br>。

语法: string nl2br(string string);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将换行字符转换成 HTML 换行的 <br> 指令。

参考


函数:number_format()

数学运算函数库

number_format

格式化数字字符串。

语法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);

返回值: 字符串

函数种类: 数学运算

内容说明

本函数用来将浮点参数 number 格式化。若没加参数 decimals 则返回的字符串只要整数部份，加了此参数才依参数指定的小数点位数返回。参数 dec_point 表示小数点的表示方式方法，默认值是 "."，若需要转换成其它的小数点就可以在这个参数改掉。参数 thousands_sep 为整数部份每三位的分隔符号，默认值是 ","。本函数最特别的地方就是参数数目，最少要有一个，也就是欲格式化的字符串；也可以有二个或者四个参数，但不能用三个参数。治募注意的是指定小数点的位数之后的数字直接舍弃，没有四舍五入的情形。

使用范例

<?
$short_pi = "3.14159";
$my_pi = number_format($short_pi, 2);
echo $my_pi."\n"; // 3.14
$foo = 850017.9021;
$new_foo = number_format($foo, 3, ".", " ");
echo $new_foo."\n"; // 850 017.902
?>


函数:OCIBindByName()

Oracle 8 数据库函数库

OCIBindByName

让动态 SQL 可使用 PHP 变量。

语法: boolean OCIBindByName(int stmt, string ph_name, mixed &variable, int length, int [type]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来定义指定的 PHP 变量，使其能供动态的 SQL 指令 (Oracle Placeholder) 使用。在大小写的问题上要注意一下，因为 Oracle 数据库中的字段名称其实都是大写的名字。参数 stmt 是经过 Oracle 解析 (OCIParse) 后的字符串指针。参数 ph_name 即为欲供动态 SQL 指令所使用的变量。参数 variable 前面一定要加 & 符号，表 PHP 变量位址。参数 length 为资料的长度，若设为 -1 则使用指定的 variable 资料最大值。参数 type 可省略，其值有 OCI_B_FILE (二进位文件)、OCI_B_CFILE (文字文件)、OCI_B_CLOB (文字 LOB)、OCI_B_BLOB (位 LOB) 及 OCI_B_ROWID (ROWID) 等数种。治募注意的是欲使用 Oracle 8 中特有的新资料类型 LOB/ROWID/BFILE 等时，需要先执行 OCINewDescriptor() 函数，同时必须要将 length 参数设成 -1。执行本函数成功则返回 true 值。

使用范例

这个范例是 thies@digicol.de 所提出的，它加入三笔资料到 emp 资料表中，并使用 ROWID 来更新资料。

<?php
$conn = OCILogon("scott", "tiger");
$stmt = OCIParse($conn,"insert into emp (empno, ename) "."values (:empno,:ename) "."returning ROWID into :rid");
$data = array(1111 => "Larry", 2222 => "Bill", 3333 => "Jim");
$rowid = OCINewDescriptor($conn, OCI_D_ROWID);
OCIBindByName($stmt, ":empno", &$empno, 32);
OCIBindByName($stmt, ":ename", &$ename, 32);
OCIBindByName($stmt, ":rid", &$rowid, -1, OCI_B_ROWID);
$update = OCIParse($conn, "update emp set sal = :sal where ROWID = :rid");
OCIBindByName($update, ":rid", &$rowid, -1, OCI_B_ROWID);
OCIBindByName($update, ":sal", &$sal, 32);
$sal = 10000;
while (list($empno, $ename) = each($data)) {
OCIExecute($stmt);
OCIExecute($update);
}
$rowid->free();
OCIFreeStatement($update);
OCIFreeStatement($stmt);
$stmt = OCIParse($conn, "select * from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
while (OCIFetchInto($stmt, &$arr, OCI_ASSOC)) {
var_dump($arr);
}
OCIFreeStatement($stmt);
/* 删除刚加在 emp 资料表中的三笔资料 */
$stmt = OCIParse($conn, "delete from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
OCIFreeStatement($stmt);
OCILogoff($conn);
?>


函数:OCIColumnIsNULL()

Oracle 8 数据库函数库

OCIColumnIsNULL

测试返回行是否为空的。

语法: boolean OCIColumnIsNULL(int stmt, mixed column);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来测试返回的行 (column) 是否为空值 (NULL)。返回 true 表示为空值。


函数:OCIColumnSize()

Oracle 8 数据库函数库

OCIColumnSize

取得字段类型的大小。

语法: int OCIColumnSize(int stmt, mixed column);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以取得字段 (column) 类型 (type) 的大小。


函数:OCICommit()

Oracle 8 数据库函数库

OCICommit

将 Oracle 的交易处理付诸实行。

语法: boolean OCICommit(int connection);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数会将最近一次 commit/rollback 后的交易 (transaction) 做永久性的修改。参数 connection 为连上 Oracle 的连接代码。返回值 true 表示成功，false 表示发生错误。


函数:OCIDefineByName()

Oracle 8 数据库函数库

OCIDefineByName

让 SELECT 指令可使用 PHP 变量。

语法: boolean OCIDefineByName(int stmt, string ColumnName, mixed &variable, int [type]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来定义指定的 PHP 变量，使其能供 SQL 指令中的 SELECT 指令使用。在大小写的问题上要注意一下，因为 Oracle 数据库中的字段名称其实都是大写的名字。参数 stmt 是经过 Oracle 解析 (OCIParse) 后的字符串指针。参数 ColumnName 是 Oracle 资料表上的字段名称。参数 variable 前面一定要加 & 符号，表 PHP 变量位址。参数 type 通常省略。治募注意的是欲使用 Oracle 8 中特有的新资料类型 LOB/ROWID/BFILE 等时，需要先执行 OCINewDescriptor() 函数。执行本函数成功则返回 true 值。

使用范例

这个范例是 thies@digicol.de 所提出的
<?php
$conn = OCILogon("scott","tiger");
$stmt = OCIParse($conn,"select empno, ename from emp");
/* 使用 OCIDefineByName 要在执行 OCIExecute 前 */
OCIDefineByName($stmt,"EMPNO",&$empno);
OCIDefineByName($stmt,"ENAME",&$ename);
OCIExecute($stmt);
while (OCIFetch($stmt)) {
echo "empno:".$empno."\n";
echo "ename:".$ename."\n";
}
OCIFreeStatement($stmt);
OCILogoff($conn);
?>


函数:OCIExecute()

Oracle 8 数据库函数库

OCIExecute

执行 Oracle 的指令部分。

语法: boolean OCIExecute(int statement, int [mode]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来执行指定的 Oracle 指令部分，执行前必须先由 OCIParse() 解析过该部分的 SQL 语法。参数 statement 为解析过的代码。参数 mode 可省略，其默认值为 OCI_COMMIT_ON_SUCCESS。返回值 true 表示成功，false 表示发生错误。


函数:OCIFetch()

Oracle 8 数据库函数库

OCIFetch

取得返回资料的一列 (row)。

语法: int OCIFetch(int statement);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得一列非空的资料。参数 statement 为解析过的代码。返回值 true 表示成功取回一列，false 表示本列是空的或发生其它错误。


函数:OCIFetchInto()

Oracle 8 数据库函数库

OCIFetchInto

取回 Oracle 资料放入数组。

语法: int OCIFetchInto(array &result, int [mode]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将对 Oracle 取回的资料放入数组 result 中。返回每列的字段数目，若失败则返回 false。参数 mode 可省略，默认值为 OCI_NUM，其它还有 OCI_ASSOC、OCI_RETURN_NULLS 及 OCI_RETURN_LOBS 等。


函数:OCILogOff()

Oracle 8 数据库函数库

OCILogOff

关闭与 Oracle 的链接。

语法: boolean OCILogOff(int connection);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数使 PHP 与 Oracle 的链接结束。参数 connection 为连上 Oracle 的连接代码。返回值 true 表示成功，false 表示发生错误。


函数:OCILogon()

Oracle 8 数据库函数库

OCILogon

打开与 Oracle 的链接。

语法: int OCILogon(string username, string password, string [OCACLE_SID]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数使 PHP 与 Oracle 建立链接。参数 username 与 password 分别为连接的帐号及密码。参数 OCACLE_SID 为数据库名称，可省略。返回值为连接的代码。


函数:OCINewDescriptor()

Oracle 8 数据库函数库

OCINewDescriptor

初始新的 LOB/FILE 描述。

语法: string OCINewDescriptor(int connection , int [type]);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来初始化新的 LOB/FILE 描述值。


函数:OCINumRows()

Oracle 8 数据库函数库

OCINumRows

取得受影响字段的数目。

语法: int OCINumRows(int statement);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数返回受 UPDATE 等指令影响的字段 (column) 数目，若使用 SELECT 等 SQL 指令则不会有影响。参数 statement 为解析过的代码。


函数:OCIParse()

Oracle 8 数据库函数库

OCIParse

分析 SQL 语法。

语法: int OCIParse(int connection, string query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可用来分析 SQL 语法或是 PL/SQL 部分是否有错误。参数 connection 为连接代码。参数 query 为 SQL 指令字符串。


函数:OCIResult()

Oracle 8 数据库函数库

OCIResult

从目前列 (row) 的资料取得一栏 (column)。

语法: string OCIResult(int statement, mixed column);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数返回返回一栏资料。参数 statement 为解析过的代码。参数 column 为字段名。若使用新的资料类型 (ROWIDs、LOBs 与 FILEs) 返回亦均为字符串。


函数:OCIRollback()

Oracle 8 数据库函数库

OCIRollback

撤消当前交易。

语法: boolean OCIRollback(int connection);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数取消 Oracle 交易处理 (transaction) 对数据库所做的修改。参数 connection 为连上 Oracle 的连接代码。若成功则返回 true，反之返回 false。


函数:OctDec()

数学运算函数库

OctDec

八进位转十进位。

语法: string decoct(int number);

返回值: 字符串

函数种类: 数学运算

内容说明

本函数将八进位字符串转成十进位数字。由于 PHP 使用 32 位有正负号整数计算，能处理最大的八进位数字为 17777777777，也就是十进位数字的 2147483647。

参考

DecOct()


函数:odbc_autocommit()

ODBC 数据库链接函数库

odbc_autocommit

开关自动改动功能。

语法: int odbc_autocommit(int connection_id, int [OnOff]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开或关闭自动更新 (auto-commit) 功能。参数 connection_id 为 ODBC 链接的 ID 值。参数 OnOff 可省略，表打开或关闭自动改动功能，默认值为 on，欲关闭则设 off。返回值为目前的自动更新状态，若打开自动更新功能则返回 true；若关闭自动更新功能则返回 false。

参考

odbc_commit() odbc_rollback()

整理: sadly (www.phpx.com)

[ 下一页 ]


函数:odbc_binmode()

ODBC 数据库链接函数库

odbc_binmode

配置二进位资料处理方式。

语法: int odbc_binmode(int result_id, int mode);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来配置二进位资料返回时的处理方式。受到本函数影响的资料类型有 BINARY、VARBINARY 及 LONGVARBINARY。参数 result_id 为返回的 ID 值，若设为 0，则程序将配置一个新的 ID 值。参数 mode 为配置的二进位处理方式，有下列的值

  • ODBC_BINMODE_PASSTHRU 返回二进位资料
  • ODBC_BINMODE_RETURN 转成十六进位返回
  • ODBC_BINMODE_CONVERT 转成字符串资料返回

注意: 若使用 odbc_fetch_into()，ODBC_BINMODE_PASSTHRU 会导至返回字符串值都是空的 (empty)。而返回资料最大治募默认大小为 4096 位组，若要返回更多的资料需使用 odbc_longreadlen()。

参考


函数:odbc_close()

ODBC 数据库链接函数库

odbc_close

关闭 ODBC 链接。

语法: void odbc_close(int connection_id);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来关闭与 ODBC 数据库之间的链接。参数 connection_id 为 ODBC 链接代号 ID 值。若正在执行 transactions 则无法关闭链接。


函数:odbc_close_all()

ODBC 数据库链接函数库

odbc_close_all

关闭所有 ODBC 链接。

语法: void odbc_close_all(void);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来关闭与 ODBC 数据库之间所有的链接。和 odbc_close() 一样，若正在执行 transactions 则无法关闭链接。使用本函数不需要使用任何参数。


函数:odbc_commit()

ODBC 数据库链接函数库

odbc_commit

改动 ODBC 数据库。

语法: int odbc_commit(int connection_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来改动 (commit) ODBC 数据库。参数 connection_id 为 ODBC 链接的 ID 值。若有配置 odbc_autocommit() 成自动改动数据库时，则不需使用本函数。


函数:odbc_connect()

ODBC 数据库链接函数库

odbc_connect

链接至 ODBC 数据库。

语法: int odbc_connect(string dsn, string user, string password, int [cursor_type]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来链接到 ODBC 数据库，返回值为链接的代号 ID 值。参数 dsn 为资料来源名称 (Data Sources Name)。参数 user 及 password 分别为链接的帐号及密码。参数 cursor_type 通常省略，其值有 SQL_CUR_USE_IF_NEEDED、SQL_CUR_USE_ODBC、SQL_CUR_USE_DRIVER 及 SQL_CUR_DEFAULT 等四种。当使用复杂的资料存取时可能会有类似 "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it" 的错误信息字符串，此时若将参数 cursor_type 的值设为 SQL_CUR_USE_ODBC 就可以避开了。

参考

odbc_pconnect()


函数:odbc_cursor()

ODBC 数据库链接函数库

odbc_cursor

取得游标名。

语法: string odbc_cursor(int result_id);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得打开的 ODBC 数据库游标 (cursor)。参数 connection_id 为 ODBC 链接代号 ID 值。返回值为游标的名称字符串。


函数:odbc_do()

ODBC 数据库链接函数库

odbc_do

执行 SQL 指令。

语法: int odbc_do(int connection_id, string query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来执行 SQL 的 query 指令。参数 connection_id 为 ODBC 链接代号 ID 值。参数 query 则为欲执行的指令。返回值为 Result ID 值。

参考


函数:odbc_exec()

ODBC 数据库链接函数库

odbc_exec

执行 SQL 指令。

语法: int odbc_exec(int connection_id, string query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来执行 SQL 的 query 指令。参数connection_id 为 ODBC 链接代号 ID 值。参数 query 则为欲执行的指令。返回值为 Result ID 值。

参考


函数:odbc_execute()

ODBC 数据库链接函数库

odbc_execute

执行预置 SQL 指令。

语法: int odbc_execute(int result_id, array [parameters_array]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来执行预置在 4.36.20 odbc_prepare() 的 query 指令。参数 result_id 为 ODBC 返回 ID 值。参数 parameters_array 通常省略。

使用范例

这是 tony.wood@revolutionltd.com (27-May-1999) 所提的范例

<?php
$conn=odbc_connect("mydb","","");
$stmt = odbc_prepare($conn, "INSERT INTO mytable (jor_from, jor_to) VALUES('$from', '$to');" );
if (!odbc_execute($stmt)) {
echo "错误";
}
odbc_close($conn);
?>

参考


函数:odbc_fetch_into()

ODBC 数据库链接函数库

odbc_fetch_into

取得返回的指定列。

语法: int odbc_fetch_into(int result_id, int [rownumber], array result_array);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料列，并放入数组资料之中。参数 result_id 为 ODBC 返回 ID 值。参数 rownumber 为指定的取得列 (row)。数组参数 result_array 为取得列的资料数组，通常在前面加上 "&" 符号。例如 vbhunt@silverfox.com 所提供的范例 (27-Sep-1998)

$cols = odbc_fetch_into($QueryID, $RowNum, &$YourArray);


函数:odbc_fetch_row()

ODBC 数据库链接函数库

odbc_fetch_row

取得返回一列。

语法: int odbc_fetch_row(int result_id, int [row_number]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的一列。参数 result_id 为 ODBC 返回 ID 值。参数 rownumber 可省略，为指定的取得列 (row)。

使用范例

<?php
$conn = odbc_connect("WebDB", "", "");
$query = "select user, idno ";
$query .= "from userinfo";
$result_id = odbc_do($conn, $query);
while(odbc_fatch_row($result_id)) {
$user = odbc_result($result_id, 1);
$idno = odbc_result($result_id, 2);
echo $user."的身份证字号为".$idno."<br>\n";
}
odbc_close($conn);
?>


函数:odbc_field_len()

ODBC 数据库链接函数库

odbc_field_len

取得字段资料长度。

语法: int odbc_field_len(int result_id, int field_number);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的字段资料长度。参数 result_id 为 ODBC 返回 ID 值。参数 field_number 为指定的字段，起始值为 1。


函数:odbc_field_name()

ODBC 数据库链接函数库

odbc_field_name

取得字段名称。

语法: string odbc_fieldname(int result_id, int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的字段名称。参数 result_id 为 ODBC 返回 ID 值。参数 field_number 为指定的字段，起始值为 1。


函数:odbc_field_type()

ODBC 数据库链接函数库

odbc_field_type

取得字段资料类型。

语法: string odbc_field_type(int result_id, int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的字段资料类型。参数 result_id 为 ODBC 返回 ID 值。参数 field_number 为指定的字段，起始值为 1。


函数:odbc_free_result()

ODBC 数据库链接函数库

odbc_free_result

释出返回资料的内存。

语法: int odbc_free_result(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可用来释出返回资料所使用的内存，通常在系统内存资源不足的情形下才需要使用。参数 result_id 为 ODBC 返回 ID 值。返回值永远都是 true。


函数:odbc_longreadlen()

ODBC 数据库链接函数库

odbc_longreadlen

配置返回栏的最大值。

语法: int odbc_longreadlen(int result_id, int length);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来配置返回资料栏的最大资料值。参数 result_id 为 ODBC 返回 ID 值。参数 length 即为欲配置的长度值，本参数若设为 0，表示不限长度。


函数:odbc_num_fields()

ODBC 数据库链接函数库

odbc_num_fields

取得字段数目。

语法: int odbc_num_fields(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得返回资料的字段数目。参数 result_id 为 ODBC 返回 ID 值。若发生错误则返回 -1。


函数:odbc_num_rows()

ODBC 数据库链接函数库

odbc_num_rows

取得返回列数目。

语法: int odbc_num_rows(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得返回列的数目。参数 result_id 为 ODBC 返回 ID 值。若有错误发生则返回 -1。


函数:odbc_pconnect()

ODBC 数据库链接函数库

odbc_pconnect

长期链接至 ODBC 数据库。

语法: int odbc_pconnect(string dsn, string user, string password, int [cursor_type]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来保持长期链接链接到 ODBC 数据库，即使 PHP 程序结束，链接仍然存在，返回值为链接的代号 ID 值。这对链接负责很重的系统可以加快链接的速度。参数 dsn 为资料来源名称 (Data Sources Name)。参数 user 及 password 分别为链接的帐号及密码。参数 cursor_type 通常省略。

参考

odbc_connect()


函数:odbc_prepare()

ODBC 数据库链接函数库

odbc_prepare

预置 SQL 指令。

语法: int odbc_prepare(int connection_id, string query_string);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来配置 SQL query 指令。参数 result_id 为 ODBC 返回 ID 值。参数 query_string 即为预设的指令。

参考

odbc_execute()


函数:odbc_result()

ODBC 数据库链接函数库

odbc_result

取得返回资料。

语法: string odbc_result(int result_id, mixed field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得返回的资料。参数 result_id 为 ODBC 返回 ID 值。参数 field 可以是数字类型，代表指定的字段序号 (从 1 开始)；亦可以是字符串类型，为指定的字段名称。


函数:odbc_result_all()

ODBC 数据库链接函数库

odbc_result_all

返回 HTML 表格资料。

语法: int odbc_result_all(int result_id, string [format]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来将取得的资料转成 HTML 的表格 (table) 格式。参数 result_id 为 ODBC 返回 ID 值。参数 format 可省略，为表格的特殊配置值。返回值为资料列数。

使用范例

<?php
$conn = odbc_connect("WebDB", "", "");
$query = "select item, price ";
$query .= "from userinfo";
$result_id = odbc_do($conn, $query);
odbc_result_all($result_id, "border=1 width=50%");
odbc_close($conn);
?>


函数:odbc_rollback()

ODBC 数据库链接函数库

odbc_rollback

撤消当前交易。

语法: int odbc_rollback(int connection_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取消 ODBC 交易处理 (transaction) 对数据库所做的修改。若成功则返回 true，反之返回 false。


函数:odbc_setoption()

ODBC 数据库链接函数库

odbc_setoption

调整 ODBC 配置。

语法: int odbc_setoption(int id, int function, int option, int param);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来调整 ODBC 的配置值。参数 id 不一定指 connection_id，SQLSetConnectOption() 则为 connection_id；若为 SQLSetStmtOption() 则为 result_id。参数 function 值为 1 表 SQLSetConnectOption()；若为 2 则为 SQLSetStmtOption()。参数 option 为配置的选项。参数 param 为配置值。

使用范例

<?
// 例一: 配置为 autocommit，即与 odbc_autocommit($conn, true) 相同。
// 第三个参数值 102 表 SQL_AUTOCOMMIT。
// 第四个参数值 1 表 SQL_AUTOCOMMIT_ON。
odbc_setoption ($conn, 1, 102, 1);
// 例二: 配置查询时间
// 第三个参数 0 表 SQL_QUERY_TIMEOUT
// 第四个参数为最久执行时间，本例设为 30 秒
$result = odbc_prepare ($conn, $sql);
odbc_setoption ($result, 2, 0, 30);
odbc_execute ($result);
?>

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:opendir()

目录管理函数库

opendir

打开目录 handle。

语法: int opendir(string path);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来打开目录资料流。返回的整数是可供其它目录函数操作的 handle。


函数:openlog()

网络函数库

openlog

打开系统纪录。

语法: int openlog(string ident, int option, int facility);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数会打开操作系统的纪录机制 (logger)。参数 ident 会加到纪录的字符串中。参数 option 的值包括了 LOG_PID、LOG_CONS、LOG_ODELAY、LOG_NDELAY、LOG_NOWAIT、LOG_PERROR，在 Win32 系统中，只有 LOG_PID 有效。参数 facility 的值可能为 LOG_KERN、LOG_USER、LOG_MAIL、LOG_DAEMON、LOG_AUTH、LOG_SYSLOG、LOG_LPR、LOG_NEWS、LOG_UUCP、LOG_CRON 或 LOG_AUTHPRIV，在 Win32 系统上，本参数是无效的字段。本函数呼叫 UNIX 系统的 openlog() 函数，因此在 Windows 系列的操作系统中，本函数没有完全的实作。

使用范例

<?php
openlog("FUN", LOG_PID | LOG_CONS, LOG_USER);
syslog(LOG_INFO, "Wa ha ha ....");
closelog();
?>

参考


函数:Ora_Bind()

Oracle 数据库函数库

Ora_Bind

链接 PHP 变量到 Oracle 参数。

语法: int ora_bind(int cursor, string PHP variable name, string SQL parameter name, int length, int [type]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将 PHP 变量与 SQL 参数系结在一起。SQL 参数 (SQL parameter) 必须是类似 ":name" 的型式。语法中的 type 为可省略的参数选项，可以设成下面三种数字之一：0 为默认值，表输入/输出 (in/out)；1 表输入 (in)；2 表输出 (out)。在 PHP 3.0.1 版之后，亦可以使用下列常量代替 type 的三种数字值：ORA_BIND_INOUT、ORA_BIND_IN 或 ORA_BIND_OUT。重要的是本函数应是在 ora_parse() 之后与 ora_exec() 之前呼叫使用。若成功则返回 true，反之返回 false。要处理详细的错误信息可使用 ora_error() 及 ora_errorcode()。

使用范例

<?php
ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
ora_bind($curs, "result", ":x", $len, 2);
ora_bind($curs, "input", ":in", 5, 1);
ora_bind($curs, "output", ":out", 5, 2);
$input = 765;
ora_exec($curs);
echo "Result: $result<BR>Out: $output<BR>In: $input";
?>

整理: sadly (www.phpx.com)

[ 下一页 ]


函数:Ora_Close()

Oracle 数据库函数库

Ora_Close

关闭一个 Oracle 的 cursor。

语法: int ora_close(int cursor);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数将 ora_open() 打开的游标 (cursor) 关闭。若成功则返回 true，反之返回 false。要处理详细的错误信息可使用 ora_error() 及 ora_errorcode()。


函数:Ora_ColumnName()

Oracle 数据库函数库

Ora_ColumnName

得到 Oracle 返回列 (Column) 的名称。

语法: string Ora_ColumnName(int cursor, int column);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数返回的名称全都转成英文大写字母。


函数:Ora_ColumnSize()

Oracle 数据库函数库

Ora_ColumnSize

取得字段类型的大小。

语法: ora_columnsize($curs, $colindex);

函数种类: 数据库功能

内容说明

本函数可以取得字段 (column) 类型 (type) 的大小。计算从 0 开始。


函数:Ora_ColumnType()

Oracle 数据库函数库

Ora_ColumnType

得到 Oracle 返回列 (Column) 的类型。

语法: string Ora_ColumnType(int cursor, int column);

返回值: 字符串

函数种类: 数据库功能

内容说明

返回的类型值为下面类型之一：

  • VARCHAR2
  • VARCHAR
  • CHAR
  • NUMBER
  • LONG
  • LONG RAW
  • ROWID
  • DATE
  • CURSOR


函数:Ora_Commit()

Oracle 数据库函数库

Ora_Commit

将 Oracle 的交易处理付诸实行。

语法: int ora_commit(int conn);

返回值: 整数

函数种类: 数据库功能

内容说明

返回值 true 表示成功，false 表示发生错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。本函数会将最近一次 commit/rollback 后的交易 (transaction) 做永久性的修改，当与 Oracle 数据库连接确认后自动执行功能 (autocommit) 会关闭。


函数:Ora_CommitOff()

Oracle 数据库函数库

Ora_CommitOff

关闭自动执行 Oracle 交易改动的功能。

语法: int ora_commitoff(int conn);

返回值: 整数

函数种类: 数据库功能

内容说明

返回值 true 表示成功，false 表示发生错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。在每次使用 ora_exec() 之后，本函数会关闭自动执行功能。


函数:Ora_CommitOn()

Oracle 数据库函数库

Ora_CommitOn

打开自动执行 Oracle 交易改动的功能。

语法: int ora_commiton(int conn);

返回值: 整数

函数种类: 数据库功能

内容说明

返回值 true 表示成功，false 表示发生错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。在每次使用 ora_exec() 后的连接时，本函数会打开自动执行功能。


函数:Ora_Do()

Oracle 数据库函数库

Ora_Do

快速的 SQL 查询。

语法: Ora_Do($conn, $query);

函数种类: 数据库功能

内容说明

kk@shonline.de (05-Aug-1998) 指出以上 17 个 PHP 的官方公布的函数是 PHP2 就有的，没有加入 PHP3 的新函数。本函数开始是 kk@shonline.de 所整理的函数。本函数结合了 Ora_Parse(), Ora_Exec(), Ora_Fetch() 等功能，提供一次快速的 SQL 查询。


函数:Ora_Error()

Oracle 数据库函数库

Ora_Error

获得 Oracle 错误信息。

语法: string Ora_Error(int cursor);

返回值: 字符串

函数种类: 数据库功能

内容说明

返回类似 XXX-NNNNN 格式的错误信息，其中的 XXX 表示错误发生的地方 NNNNN 用来验证错误的信息。在 UNIX 版的 Oracle 上，可以找到类似以下的错误信息详细说明：

oerr ora 00001

00001, 00000, "unique constraint (%s.%s) violated"
// *Cause: An update or insert statement attempted to insert a duplicate key
//         For Trusted ORACLE configured in DBMS MAC mode, you may see
//         this message if a duplicate entry exists at a different level.
// *Action: Either remove the unique restriction or do not insert the key


函数:Ora_ErrorCode()

Oracle 数据库函数库

Ora_ErrorCode

获得 Oracle 错误代码。

语法: int Ora_ErrorCode(int cursor);

返回值: 整数

函数种类: 数据库功能

内容说明

返回数字类型的错误代码。


函数:Ora_Exec()

Oracle 数据库函数库

Ora_Exec

执行 Oracle 的指令部分。

语法: int ora_exec(int cursor);

返回值: 整数

函数种类: 数据库功能

内容说明

返回值 true 表示成功，false 表示发生错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。


函数:Ora_Fetch()

Oracle 数据库函数库

Ora_Fetch

取得返回资料的一列 (row)。

语法: int ora_fetch(int cursor);

返回值: 整数

函数种类: 数据库功能

内容说明

返回值 true 表示成功取回一列，false 表示本列是空的或发生其它错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。若没有发生错误，ora_errorcode() 会返回 0。


函数:Ora_FetchInto()

Oracle 数据库函数库

Ora_FetchInto

取回 Oracle 资料放入数组。

语法: Ora_FetchInto($curs, &$ary);

函数种类: 数据库功能

内容说明

本函数将对 Oracle 取回的资料放入数组 ary 中。返回每列的字段数目，若失败则返回 false。


函数:Ora_GetColumn()

Oracle 数据库函数库

Ora_GetColumn

从返回列 (row) 的资料取得一栏 (column)。

语法: mixed ora_getcolumn(int cursor, mixed column);

返回值: 混合类型资料

函数种类: 数据库功能

内容说明

返回一栏资料。若发生错误，ora_errorcode() 会返回非 0 的数值。值得注意的是，若返回的是空的字符串，或者返回整数 0，均不算错误，程序中必须自行处理这种情形。


函数:Ora_Logoff()

Oracle 数据库函数库

Ora_Logoff

结束与 Oracle 的链接。

语法: int ora_logoff(int connection);

返回值: 整数

函数种类: 数据库功能

内容说明

返回值 true 表示成功，false 表示发生错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。本函数会登出数据库 (Logout) 并结束与 Oracle 服务器的链接。


函数:Ora_Logon()

Oracle 数据库函数库

Ora_Logon

打开与 Oracle 的链接。

语法: int ora_logon(string user, string password);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数使 PHP 与 Oracle 建立链接。亦可以利用 SQL*Net 提供的 TNS name 链接到远端的数据库，方法如下：

$conn = Ora_Logon("user@TNSNAME", "pass");

连接成功会返回整数的索引值，返回 false 表示发生错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。对美国以外的国家，数据库中可能会有非 ASCII 字符的情形，这时需要在环境变量中加入 NLS_LANG 的变量。例如：若查询返回资料中有中文 BIG5 码的资料，在 ora_logon() 之前加入以下的程序码

putenv("NLS_LANG=american_taiwan.zht16big5");

使用范例

pwalker@pwccanada.com (21-Sep-1998) 提供了这二个范例

1. 连接到与 Web 服务器同一台的 Oracle 数据库可用
<?
Ora_Logon("system" , "manager"); 或
Ora_Logon("system/manager" , "");
?>

2. 连接到远端 Oracle 服务器要利用 SQL*Net 或 Net8
<?
Ora_Logon("system/manager@host" , "");
?>


函数:Ora_Numcols()

Oracle 数据库函数库

Ora_Numcols

取得字段的数目。

语法: ora_numcols($curs);

函数种类: 数据库功能

内容说明

本函数返回字段 (column) 的数目。这个函数只在执行了 ora_parse()/ora_exec()/ora_fetch() 或是 ora_do() 才有用。


函数:Ora_Open()

Oracle 数据库函数库

Ora_Open

打开 Oracle 的 cursor。

语法: int ora_open(int connection);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数使与 Oracle 连接并打开 cursor。连接成功会返回 cursor 的索引值，返回 false 表示发生错误。详细的错误纠错可以使用 ora_error() 及 ora_errorcode()。


函数:Ora_Parse()

Oracle 数据库函数库

Ora_Parse

分析 SQL 语法。

语法: int ora_parse(int cursor_ind, string sql_statement, int defer);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可用来分析 SQL 语法或是 PL/SQL 部分是否有错误。返回 0 表示无误，返回为 -1 表示有错误发生。


函数:Ora_PLogon()

Oracle 数据库函数库

Ora_PLogon

打开与 Oracle 的长期链接。

语法: int ora_plogon(string user, string password);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数使 PHP 与 Oracle 建立链接，功能与 ora_logon() 函数类似，但使用本函数会一直与数据库连接直到停止 Apache 服务器，这会使与 Oracle 连接速度更快，但需要更多的内存。亦可参考 mysql_pconnect() 获得更多的细节资料。

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:Ora_Rollback()

Oracle 数据库函数库

Ora_Rollback

撤消当前交易。

语法: int ora_rollback(int connection);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取消 Oracle 交易处理 (transaction) 对数据库所做的修改。若成功则返回 true，反之返回 false。要处理详细的错误信息可使用 ora_error() 及 ora_errorcode()。


函数:Ord()

字符串处理函数库

Ord

返回字符的序数值。

语法: int ord(string string);

返回值: 整数

函数种类: 资料处理

内容说明

本函数返回字符的 ASCII (美国国家标准交换码) 序数值。本函数和 chr() 函数相反。

使用范例

<?php
if (ord($str) == 10) {
echo("字符串 \$str 的第一个字是换行字符。\n");
}
?>

参考

chr()


函数:pack()

杂项函数库

pack

压缩资料到位字符串之中。

语法: string pack(string format, mixed [args]...);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数用来将资料压缩打包到位的字符串之中。本函数和 Perl 的同名函数功能用法完全相同。参数 format 为压缩的格式，见下表

a | 将字符串空白以 NULL 字符填满
A | 将字符串空白以 SPACE 字符 (空格) 填满
h | 十六进位字符串，低位在前
H | 十六进位字符串，高位在前
c | 有号字符
C | 无号字符
s | 有号短整数 (十六位，依计算机的位顺序)
S | 无号短整数 (十六位，依计算机的位顺序)
n | 无号短整数 (十六位, 高位在后的顺序)
v | 无号短整数 (十六位, 低位在后的顺序)
i | 有号整数 (依计算机的顺序及范围)
I | 无号整数 (依计算机的顺序及范围)
l | 有号长整数 (卅二位，依计算机的位顺序)
L | 无号长整数 (卅二位，依计算机的位顺序)
N | 无号短整数 (卅二位, 高位在后的顺序)
V | 无号短整数 (卅二位, 低位在后的顺序)
f | 单精确浮点数 (依计算机的范围)
d | 倍精确浮点数 (依计算机的范围)
x | 空位
X | 倒回一位
@ | 填入 NULL 字符到绝对位置

使用范例

<?php
print(pack("cccc", 65, 66, 67, 68));
echo "<br>\n";
print(pack("h10", "778899aabb"));
echo "<br>\n";
print(pack("H10", "778899aabb"));
?>

参考

unpack()


函数:parse_str()

字符串处理函数库

parse_str

解析 query 字符串成变量。

语法: void parse_str(string str);

返回值: 无

函数种类: 资料处理

内容说明

本函数可将浏览器返回的 GET 方法的 QUERY_STRING 字符串解析。返回的变量名及值就依 QUERY_STRING 的名称及值。

使用范例

<?php
$str = "first=value&second[]=this+works&second[]=another";
parse_str($str);
echo $first; // 显示出 "value" 字符串
echo $second[0]; // 显示 "this works" 字符串
echo $second[1]; // 显示 "another" 字符串
?>


函数:parse_url()

URL 处理函数库

parse_url

解析 URL 字符串。

语法: array parse_url(string url);

返回值: 数组

函数种类: 资料处理

内容说明

本函数将 URL 字符串予以解析，并将结果返回数组中。完整的 URL 类似这样子

scheme://user:pass@host:port/path?query。

如 http://john:john1234@john.wilson.gs:88/abcdef.php?a=1234

因此返回的数组包括了下列元素：scheme、host、port、user、pass、path、query 与 fragment 等。


函数:passthru()

程序执行功能函数库

passthru

执行外部程序并不加处理输出资料。

语法: string passthru(string command, int [return_var]);

返回值: 字符串

函数种类: 操作系统与环境

内容说明

本函数类似 Exec() 用来执行 command 指令，并输出结果。若是 return_var 参数存在，则执行 command 之后的状态会填入 return_var 中。若输出的资料是二进位的资料，并且需要输出到浏览器中的话，使用本函数就相当合适了。例如使用 pbmplus 工具来执行指令，并返回二进位的图形资料。可以先配置返回资料的标头 (header) 为 Content-type: image/gif，然后呼叫 pbmplus 程序处理图形资料，并将二进位的图形资料直接返回浏览器。

参考


函数:pclose()

文件系统函数库

pclose

关闭文件。

语法: int pclose(int fp);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来关闭以 popen() 打开的管道文件。而参数 fp 必需是有效的，且使用 popen() 打开的文件。返回结处理文件的结束状态。

参考

popen()


函数:PDF_add_annotation()

PDF 格式文件函数库

PDF_add_annotation

加入注释。

语法: boolean pdf_add_annotation(int pdfid, double llx, double lly, double urx, double ury, string title, string content);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数可将 PDF 档加入注释。参数 (llx, lly)、(urx, ury) 分别为左下及右上的 X, Y 坐标。参数 title 为注释的标题。参数 content 为注释字符串。


函数:PDF_add_outline()

PDF 格式文件函数库

PDF_add_outline

目前页面加入书签。

语法: boolean pdf_add_outline(int pdfid, string text);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将目前的页面加入书签 (bookmark)。参数 pdfid 为 PDF 文件代码。参数 text 为书签上的字符串。值得注意的是使用本函数要小心，因为 pdflib 和 PHP 在使用本函数的搭配上可能会导致内存无法完全释放。


函数:PDF_arc()

PDF 格式文件函数库

PDF_arc

绘弧。

语法: boolean pdf_arc(int pdfid, double x-koor, double y-koor, double radius, double start, double end);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来绘制弧线。参数 pdfid 为 PDF 文件代码。参数 x-koor 与 y-koor 为弧的圆心 X, Y 坐标。参数 radius 为弧的半径。参数 start 与 end 分别为弧的起始和终点的角度。

参考


函数:PDF_begin_page()

PDF 格式文件函数库

PDF_begin_page

启始 PDF 文件页面。

语法: boolean pdf_begin_page(int pdfid, double height, double width);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来启始 PDF 文件页面，并配置页面大小。参数 pdfid 为 PDF 文件代码。参数 height 与 width 为浮点数类型的数字，分别为 PDF 页面的高度和宽度。成功则返回 true 值。

参考

PDF_end_page()


函数:PDF_circle()

PDF 格式文件函数库

PDF_circle

绘圆。

语法: boolean pdf_circle(int pdfid, double x-koor, double y-koor, double radius);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来绘制圆形。参数 pdfid 为 PDF 文件代码。参数 x-koor 与 y-koor 为圆心的 X, Y 坐标。参数 radius 为圆的半径。

参考


函数:PDF_clip()

PDF 格式文件函数库

PDF_clip

组合所有向量。

语法: boolean pdf_clip(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将所有的向量组合在目前使用的向量上。参数 pdfid 为 PDF 文件代码。


函数:PDF_close()

PDF 格式文件函数库

PDF_close

关闭 PDF 档。

语法: boolean pdf_close(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来关闭 PDF 文件。参数 pdfid 为 PDF 文件代码。成功则返回 true 值。


函数:PDF_close_image()

PDF 格式文件函数库

PDF_close_image

关闭图档。

语法: boolean pdf_close_image(int image);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来关闭指定的图片。参数 image 为图片代码。

参考


函数:PDF_closepath()

PDF 格式文件函数库

PDF_closepath

形成封闭的向量形状。

语法: boolean pdf_closepath(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将目前绘制的向量形成封闭区域，意即从目前的坐标点绘一直线到向量的起始坐标点。参数 pdfid 为 PDF 文件代码。


函数:PDF_closepath_fill_stroke()

PDF 格式文件函数库

PDF_closepath_fill_stroke

形成封闭的向量形状沿向量绘线并填满。

语法: boolean pdf_closepath_fill_stroke(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将目前绘制的向量形成封闭区域，并且沿着目前的向量和绘一条线，同时亦使用目前使用的颜色将封闭区域填满。参数 pdfid 为 PDF 文件代码。

参考


函数:PDF_closepath_stroke()

PDF 格式文件函数库

PDF_closepath_stroke

形成封闭的向量形状并沿向量绘线。

语法: boolean pdf_closepath_stroke(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将目前绘制的向量形成封闭区域，并且沿着目前的向量和绘一条线。参数 pdfid 为 PDF 文件代码。

参考


函数:PDF_continue_text()

PDF 格式文件函数库

PDF_continue_text

输出文字。

语法: boolean pdf_continue_text(int pdfid, string text);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数输出文字到下一行。参数 pdfid 为 PDF 文件代码。参数 text 为欲输出显示的文字。成功则返回 true 值。


函数:PDF_curveto()

PDF 格式文件函数库

PDF_curveto

绘贝氏曲线。

语法: boolean pdf_curveto(int pdfid, double x1, double y1, double x2, double y2, double x3, double y3);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来绘制贝氏曲线 (Bezier curve)。参数 pdfid 为 PDF 文件代码。弧线的起点为目前处理坐标点。参数 (x1, y1) 为终点，(x2, y2) 及 (x3, y3) 为曲线的控制点。

参考


函数:PDF_end_page()

PDF 格式文件函数库

PDF_end_page

关闭 PDF 文件页面。

语法: boolean pdf_end_page(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来关闭 PDF 文件页面，并配置页面大小。参数 pdfid 为 PDF 文件代码。成功则返回 true 值。

参考

PDF_begin_page()


函数:PDF_endpath()

PDF 格式文件函数库

PDF_endpath

关闭目前向量。

语法: boolean pdf_endpath(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将关闭目前使用的向量，但不做连回起点等步骤。参数 pdfid 为 PDF 文件代码。


函数:PDF_execute_image()

PDF 格式文件函数库

PDF_execute_image

放置 PDF 档中图片到指定位置。

语法: boolean pdf_execute_image(int pdfid, int image, double x-coor, double y-coor, double scale);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将放在目前操作的 PDF 档上的暂存图片放指定位置。参数 pdfid 为 PDF 文件代码。参数 image 为图片代码。参数 x-koor 及 y-koor 分别为指定的 X, Y 坐标。参数 scale 为欲配置的间距值，为浮点数。


函数:PDF_fill()

PDF 格式文件函数库

PDF_fill

填满目前的向量。

语法: boolean pdf_fill(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数可将目前的向量内部填上目前使用的颜色。参数 pdfid 为 PDF 文件代码。

参考


函数:PDF_fill_stroke()

PDF 格式文件函数库

PDF_fill_stroke

填满目前的向量并沿向量绘线。

语法: boolean pdf_fill_stroke(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数可将目前的向量内部填上目前使用的颜色，同时并沿着目前的向量和绘一条线。参数 pdfid 为 PDF 文件代码。

参考


函数:PDF_get_info()

PDF 格式文件函数库

PDF_get_info

返回文件信息。

语法: int pdf_get_info();

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来取得 PDF 的文件信息，例如作者、主题....等等。需要 pdflib 2.0 以上才能使用本函数的功能。

参考


函数:PDF_lineto()

PDF 格式文件函数库

PDF_lineto

绘直线。

语法: boolean pdf_lineto(int pdfid, double x-koor, double y-koor);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来绘制直线。参数 pdfid 为 PDF 文件代码。直线的起点为目前处理坐标点。参数 x-koor 与 y-koor 为终点的 X, Y 坐标。

参考


函数:PDF_moveto()

PDF 格式文件函数库

PDF_moveto

配置处理的坐标点。

语法: boolean pdf_moveto(int pdfid, double x-koor, double y-koor);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将目前的处理坐标点移到指定的新位置。参数 pdfid 为 PDF 文件代码。参数 x-koor 及 y-koor 分别为新的坐标 X 及 Y 点。


函数:PDF_open()

PDF 格式文件函数库

PDF_open

建立新的 PDF 档。

语法: int pdf_open(int file, int info);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来打开新的 PDF 文件，意即建立新的 PDF 档。参数 file 为使用 fopen() 所开档的文件代码。参数 info 为 PDF_get_info() 产生的 PDF 文件信息代码。成功则返回 PDF 文件代码。


函数:PDF_open_gif()

PDF 格式文件函数库

PDF_open_gif

打开 GIF 图档。

语法: int pdf_open_gif(int pdfid, string filename);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来打开 GIF 格式的图形档。参数 pdfid 为 PDF 文件代码。参数 filename 为图档的名称。


函数:PDF_open_jpeg()

PDF 格式文件函数库

PDF_open_jpeg

打开 JPEG 图档。

语法: int pdf_open_jpeg(int pdfid, string filename);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来打开 JPEG 格式的图形档。参数 pdfid 为 PDF 文件代码。参数 filename 为图档的名称。


函数:PDF_open_memory_image()

PDF 格式文件函数库

PDF_open_memory_image

打开内存图档。

语法: int pdf_open_memory_image(int pdfid, int image);

返回值: 整数

函数种类: 特殊文件格式

内容说明

本函数用来打开 PHP 程序使用内存中的图形。参数 pdfid 为 PDF 文件代码。参数 image 为图形的名称。


函数:PDF_place_image()

PDF 格式文件函数库

PDF_place_image

放置图片到 PDF 档指定位置。

语法: boolean pdf_place_image(int pdfid, int image, double x-koor, double y-koor, double scale);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将图片放在目前操作的 PDF 档上的指定位置。参数 pdfid 为 PDF 文件代码。参数 image 为图片代码。参数 x-koor 及 y-koor 分别为指定的 X, Y 坐标。参数 scale 为欲配置的间距值，为浮点数。


函数:PDF_put_image()

PDF 格式文件函数库

PDF_put_image

放置图片到 PDF 档。

语法: boolean pdf_put_image(int pdfid, int image);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将图片放在目前操作的 PDF 档上，值得注意的是本函数仅暂时放置，实际还需 PDF_execute_image() 函数来配合。参数 pdfid 为 PDF 文件代码。参数 image 为图片代码。

参考


函数:PDF_rect()

PDF 格式文件函数库

PDF_rect

绘长方形。

语法: boolean pdf_rect(int pdfid, double x-koor, double y-koor, double width, double height);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来绘制长方形。参数 pdfid 为 PDF 文件代码。参数 x-koor 与 y-koor 为长方形的左下角 X, Y 坐标。参数 width 及 height 分别为长方形的宽度及高度。

参考

PDF_stroke()


函数:PDF_restore()

PDF 格式文件函数库

PDF_restore

还原环境变量。

语法: boolean pdf_restore(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来还原之前储存的环境变量，有点像是 postscript 语法中的 grestore 指令，当平移或旋转某一位又不要影响别的位时，本函数就很有用了。参数 pdfid 为 PDF 文件代码。

使用范例

以下为部份的例子

<?php
PDF_save($pdf);
// 在这儿旋转位....等等。
PDF_restore($pdf);
?>

参考

PDF_save()


函数:PDF_rotate()

PDF 格式文件函数库

PDF_rotate

旋转位。

语法: boolean pdf_rotate(int pdfid, double angle);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将位旋转。参数 pdfid 为 PDF 文件代码。参数 angle 为旋转角度。


函数:PDF_save()

PDF 格式文件函数库

PDF_save

储存环境变量。

语法: boolean pdf_save(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来储存目前的环境变量，有点像是 postscript 语法中的 gsave 指令，当平移或旋转某一位又不要影响别的位时，本函数就很有用了。参数 pdfid 为 PDF 文件代码。本函数通常配合 PDF_restore() 使用。

参考

PDF_restore()


函数:PDF_scale()

PDF 格式文件函数库

PDF_scale

缩放位。

语法: boolean PDF_scale(int pdfid, double x-koor, double y-koor);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来将位放大或缩小。参数 pdfid 为 PDF 文件代码。参数 x-koor 与 y-koor 均为浮点数，分别为 X、Y 的缩放比例。

使用范例

下例先配置 X, Y 均放大 72 倍，再从 (0,0) 画条线到 (1, 1)，形成了 (0, 0) 到 (72, 72) 的线。

<?php
PDF_scale($pdf, 72.0, 72.0);
PDF_lineto($pdf, 1, 1);
PDF_stroke($pdf);
?>


函数:PDF_set_char_spacing()

PDF 格式文件函数库

PDF_set_char_spacing

配置字符间距。

语法: boolean pdf_set_char_spacing(int pdfid, double space);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置字符 (char) 的间距。参数 pdfid 为 PDF 文件代码。参数 space 为浮点数，为欲配置的距离。成功则返回 true 值。


函数:PDF_set_duration()

PDF 格式文件函数库

PDF_set_duration

配置二页的切换时间。

语法: boolean pdf_set_duration(int pdfid, double duration);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置页与页的切换时间。参数 pdfid 为 PDF 文件代码。参数 duration 为换页的秒数。


函数:PDF_set_font()

PDF 格式文件函数库

PDF_set_font

配置使用的字型及大小。

语法: boolean pdf_set_font(int pdfid, string fontname, double size, int encoding);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置指定的字型及字型大小，供程序有关字符串输出使用。参数 pdfid 为 PDF 文件代码。参数 fontname 为字型名称。参数 size 为字型大小。参数 encoding 的默认值为 4，其数字如下 0 表 builtin、1 为 pdfdoc、2 为 macroman、3 表 macexpert 与 4 为 winansi。成功则返回 true 值。本函数需要 pdflib 2.0 以上方可支持。


函数:PDF_set_horiz_scaling()

PDF 格式文件函数库

PDF_set_horiz_scaling

配置文字水平间距。

语法: boolean pdf_set_horiz_scaling(int pdfid, double scale);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置文字的水平间距。参数 pdfid 为 PDF 文件代码。参数 scale 为欲配置的间距值，为浮点数。


函数:PDF_set_info_author()

PDF 格式文件函数库

PDF_set_info_author

配置文件作者。

语法: void pdf_set_info_author(int info, string author);

返回值: 无

函数种类: 特殊文件格式

内容说明

本函数用来配置 PDF 文件的作者。参数 info 为 PDF 文件信息代码，供 PDF_open() 所使用的代码。参数 author 为欲配置的文件作者名字。需要 pdflib 2.0 以上才能使用本函数的功能。


函数:PDF_set_info_creator()

PDF 格式文件函数库

PDF_set_info_creator

配置建档者字符串。

语法: void pdf_set_info_creator(int info, string creator);

返回值: 无

函数种类: 特殊文件格式

内容说明

本函数用来配置 PDF 的建立文件者信息。参数 info 为 PDF 文件信息代码，供 PDF_open() 所使用的代码。参数 creator 为建档者名称。需要 pdflib 2.0 以上才能使用本函数的功能。


函数:PDF_set_info_keywords()

PDF 格式文件函数库

PDF_set_info_keywords

配置文件的关键字。

语法: void pdf_set_info_keywords(int info, string keywords);

返回值: 无

函数种类: 特殊文件格式

内容说明

本函数用来配置 PDF 文件的关键字 (keyword)。参数 info 为 PDF 文件信息代码，供 PDF_open() 所使用的代码。参数 keywords 为欲配置的文件关键字字符串。需要 pdflib 2.0 以上才能使用本函数的功能。


函数:PDF_set_info_subject()

PDF 格式文件函数库

PDF_set_info_subject

配置文件主题。

语法: void pdf_set_info_subject(int info, string subject);

返回值: 无

函数种类: 特殊文件格式

内容说明

本函数用来配置 PDF 的文件主题 (subject)。参数 info 为 PDF 文件信息代码，供 PDF_open() 所使用的代码。参数 subject 为欲配置的文件主题字符串。需要 pdflib 2.0 以上才能使用本函数的功能。


函数:PDF_set_info_title()

PDF 格式文件函数库

PDF_set_info_title

配置文件标题。

语法: void pdf_set_info_title(int info, string title);

返回值: 无

函数种类: 特殊文件格式

内容说明

本函数用来配置 PDF 的文件标题 (title)。参数 info 为 PDF 文件信息代码，供 PDF_open() 所使用的代码。参数 title 为欲配置的文件标头字符串。需要 pdflib 2.0 以上才能使用本函数的功能。


函数:PDF_set_leading()

PDF 格式文件函数库

PDF_set_leading

配置行距。

语法: boolean pdf_set_leading(int pdfid, double distance);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置输出文字间的行距。参数 pdfid 为 PDF 文件代码。参数 distance 为欲配置的行距值，为浮点数。使用本函数后会影响到 PDF_continue_text() 所输出的字符串。执行成功则返回 true 值。

参考

PDF_continue_text()


函数:PDF_set_text_matrix()

PDF 格式文件函数库

PDF_set_text_matrix

配置文字矩阵。

语法: boolean pdf_set_text_matrix(int pdfid, array matrix);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置文字的矩阵。参数 pdfid 为 PDF 文件代码。参数 matrix 为数组，最多可有六个元素。


函数:PDF_set_text_pos()

PDF 格式文件函数库

PDF_set_text_pos

配置文字位置。

语法: boolean pdf_set_text_pos(int pdfid, double x-koor, double y-koor);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置文字的显示位置。参数 pdfid 为 PDF 文件代码。参数 x-koor 与 y-koor 均为浮点数，分别为 X、Y 的座标。在使用本函数后的 PDF_show() 会受到影响。成功则返回 true 值。


函数:PDF_set_text_rendering()

PDF 格式文件函数库

PDF_set_text_rendering

配置文字表现方式。

语法: boolean pdf_set_text_rendering(int pdfid, int mode);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置输出文字间的表现方法。参数 pdfid 为 PDF 文件代码。参数 mode 为 render 的方式，值如下表

数值 | 方式
0 | 实心文字
1 | 空心文字
2 | 填满及空心文字
3 | 透明文字
4 | 实心文字并裁切向量
5 | 空心文字并裁切向量
6 | 填满及空心文字并裁切向量
7 | 裁切向量

执行成功则返回 true 值。


函数:PDF_set_text_rise()

PDF 格式文件函数库

PDF_set_text_rise

配置文字高度。

语法: boolean pdf_set_text_rise(int pdfid, double value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置文字的高度。参数 pdfid 为 PDF 文件代码。参数 value 为欲配置的高度，为浮点数。


函数:PDF_set_transition()

PDF 格式文件函数库

PDF_set_transition

配置页的转换。

语法: boolean pdf_set_transition(int pdfid, int transition);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置页的转换模式。参数 pdfid 为 PDF 文件代码。参数 transition 为转换方式，默认值为 7。


函数:PDF_set_word_spacing()

PDF 格式文件函数库

PDF_set_word_spacing

配置字间距。

语法: boolean pdf_set_word_spacing(int pdfid, double space);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置字 (word) 的间距。参数 pdfid 为 PDF 文件代码。参数 space 为浮点数，为欲配置的距离。成功则返回 true 值。


函数:PDF_setdash()

PDF 格式文件函数库

PDF_setdash

配置虚线样式。

语法: boolean pdf_setdash(int pdfid, double white, double black);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置虚线的样式。参数 pdfid 为 PDF 文件代码。参数 white 及 black 分别为虚线的白色及黑色部份单位长度，若这二个参数均为 0 则表示实线。


函数:PDF_setflat()

PDF 格式文件函数库

PDF_setflat

配置平滑值。

语法: boolean pdf_setflat(int pdfid, double value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置平滑值。参数 pdfid 为 PDF 文件代码。参数 value 为欲配置的平滑值，范围为 0 至 100。


函数:PDF_setgray()

PDF 格式文件函数库

PDF_setgray

指定绘图的颜色为灰阶并填入。

语法: boolean pdf_setgray(int pdfid, double value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置目前的绘图颜色为灰阶的颜色。参数 pdfid 为 PDF 文件代码。参数 value 为灰阶值。

参考

PDF_setrgbcolor()


函数:PDF_setgray_fill()

PDF 格式文件函数库

PDF_setgray_fill

指定填入的颜色为灰阶。

语法: boolean pdf_setgray_fill(int pdfid, double value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置灰阶为填色函数所使用的颜色。参数 pdfid 为 PDF 文件代码。参数 value 为灰阶值。


函数:PDF_setgray_stroke()

PDF 格式文件函数库

PDF_setgray_stroke

指定绘图的颜色为灰阶。

语法: boolean pdf_setgray_stroke(int pdfid, double value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置目前的绘图颜色为灰阶的颜色。参数 pdfid 为 PDF 文件代码。参数 value 为灰阶值。

参考

PDF_setrgbcolor_stroke()


函数:PDF_setlinecap()

PDF 格式文件函数库

PDF_setlinecap

配置 linecap 参数。

语法: boolean pdf_setlinecap(int pdfid, int value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置 linecap 参数。参数 pdfid 为 PDF 文件代码。参数 value 为欲配置的值，范围为 0 至 2。


函数:PDF_setlinejoin()

PDF 格式文件函数库

PDF_setlinejoin

配置连接参数。

语法: boolean pdf_setlinejoin(int pdfid, int value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置连接 (linejoin) 参数。参数 pdfid 为 PDF 文件代码。参数 value 为欲配置的值，范围为 0 至 2。


函数:PDF_setlinewidth()

PDF 格式文件函数库

PDF_setlinewidth

配置线宽。

语法: boolean pdf_setlinewidth(int pdfid, double width);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置线的宽度。参数 pdfid 为 PDF 文件代码。参数 width 为欲配置的宽度值。


函数:PDF_setmiterlimit()

PDF 格式文件函数库

PDF_setmiterlimit

配置斜边界限。

语法: boolean pdf_setmiterlimit(int pdfid, double value);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置斜边界线。参数 pdfid 为 PDF 文件代码。参数 value 为欲配置的值，其值大于或者等于 1。


函数:PDF_setrgbcolor()

PDF 格式文件函数库

PDF_setrgbcolor

指定绘图的颜色为彩色并填入。

语法: boolean pdf_setrgbcolor(int pdfid, double red, double green, double blue);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置目前的绘图颜色为彩色。参数 pdfid 为 PDF 文件代码。参数 red、green 与 blue 分别为三原色值，即红绿蓝 (RGB)。

参考

PDF_setgray()


函数:PDF_setrgbcolor_fill()

PDF 格式文件函数库

PDF_setrgbcolor_fill

指定填入的颜色为彩色。

语法: boolean pdf_setrgbcolor_fill(int pdfid, double red, double green, double blue);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置彩色为填色函数所使用的颜色。参数 pdfid 为 PDF 文件代码。参数 red、green 与 blue 分别为三原色值，即红绿蓝 (RGB)。


函数:PDF_setrgbcolor_stroke()

PDF 格式文件函数库

PDF_setrgbcolor_stroke

指定绘图的颜色为彩色。

语法: boolean pdf_setrgbcolor_stroke(int pdfid, double red, double green, double blue);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来配置目前的绘图颜色为彩色。参数 pdfid 为 PDF 文件代码。参数 red、green 与 blue 分别为三原色值，即红绿蓝 (RGB)。

参考

PDF_setgray_stroke()


函数:PDF_show()

PDF 格式文件函数库

PDF_show

输出字符串到 PDF 文件。

语法: boolean pdf_show(int pdfid, string text);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来送出文字字符串到 PDF 文件中。参数 pdfid 为 PDF 文件代码。参数 text 为欲加入的字符串。成功则返回 true 值。

参考


函数:PDF_show_xy()

PDF 格式文件函数库

PDF_show_xy

输出字符串到指定坐标。

语法: boolean pdf_show_xy(int pdfid, string text, double x-koor, double y-koor);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来送出文字字符串到 PDF 文件中的指定坐标上。参数 pdfid 为 PDF 文件代码。参数 text 为欲加入的字符串。参数 x-koor 及 y-koor 分别为 X, Y 二点坐标，为浮点数类型。成功则返回 true 值。

参考


函数:PDF_stringwidth()

PDF 格式文件函数库

PDF_stringwidth

计算字符串的宽度。

语法: double pdf_stringwidth(int pdfid, string text);

返回值: 浮点数

函数种类: 特殊文件格式

内容说明

本函数用来计算指定字符串的宽度。参数 pdfid 为 PDF 文件代码。参数 text 为欲计算的文字。成功则返回 true 值。


函数:PDF_stroke()

PDF 格式文件函数库

PDF_stroke

沿向量绘线。

语法: boolean pdf_stroke(int pdfid);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数会沿着目前的向量和绘一条线。参数 pdfid 为 PDF 文件代码。

参考


函数:PDF_translate()

PDF 格式文件函数库

PDF_translate

移动原点。

语法: boolean pdf_translate(int pdfid, double x-koor, double y-koor);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数用来移动原点。参数 pdfid 为 PDF 文件代码。参数 x-koor 与 y-koor 均为浮点数，分别为 X、Y 的移动距离。

使用范例

下例先从 (0,0) 画条线到 (100, 100)，再将原点向 X、Y 移动 (100, 100), 再画条 (0, 0) 至 (100, 100) 的线，形成 (-100, -100) 到 (100, 100) 的线。程序的前后省略。

<?php
PDF_moveto($pdf, 0, 0);
PDF_lineto($pdf, 100, 100);
PDF_stroke($pdf);
PDF_translate($pdf, 100, 100);
PDF_moveto($pdf, 0, 0);
PDF_lineto($pdf, 100, 100);
PDF_stroke($pdf);
?>


函数:pfsockopen()

网络函数库

pfsockopen

打开网络的 Socket 持续链接。

语法: int pfsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

返回值: 整数

函数种类: 网络系统

内容说明

本函数和 fsockopen() 类似，但本函数在 PHP 程序结束时，不会将网络 socket 链接关闭，仍保持连接。用这种方式，可以增加效率，但较耗系统资源。


函数:pg_Close()

PostgreSQL 数据库函数库

pg_Close

关闭 PostgreSQL 服务器连接。

语法: boolean pg_close(int connection);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数关闭与 PostgreSQL 服务器的连接。参数 connection 为连接代码。成功返回 true、失败返回 false 值。


函数:pg_cmdTuples()

PostgreSQL 数据库函数库

pg_cmdTuples

取得被 SQL 指令影响的资料笔数。

语法: int pg_cmdtuples(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 PostgreSQL 的 SQL 指令所影响的资料笔数，这些 query 指令包括 INSERT、UPDATE 与 DELETE 等。返回值为影响的笔数，若没有资料受影响则返回 0。

使用范例

本例为部份的程序

<?php
$result = pg_exec($conn, "INSERT INTO verlag VALUES ('Autor')");
$cmdtuples = pg_cmdtuples($result);
echo $cmdtuples." 笔资料受影响<p>\n";
?>


函数:pg_Connect()

PostgreSQL 数据库函数库

pg_Connect

打开 PostgreSQL 服务器连接。

语法: int pg_connect(string [host], string [port], string [options], string [tty], string database);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数打开与 PostgreSQL 服务器的连接。参数 host 表服务器名称。参数 port 为连接埠。参数 options 为选项。参数 tty 为终端机。参数 database 为数据库名。成功返回连接代号、失败返回 false 值。

使用范例

<?
pg_connect("dbname=testdb user=wilson password=haha port=5433");
// 以下略
?>

参考

pg_pConnect()


函数:pg_DBname()

PostgreSQL 数据库函数库

pg_DBname

取得目前的数据库名称。

语法: string pg_dbname(int connection);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 PostgreSQL 目前使用的数据库 (database) 名称。参数 connection 为连接代码。


函数:pg_ErrorMessage()

PostgreSQL 数据库函数库

pg_ErrorMessage

返回错误信息。

语法: string pg_errormessage(int connection);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以取得 PostgreSQL 服务器的错误信息。参数 connection 为连接代码。


函数:pg_Exec()

PostgreSQL 数据库函数库

pg_Exec

执行 query 指令。

语法: int pg_exec(int connection, string query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来执行指定的 query 指令。参数 connection 为连接代码。参数 query 为欲执行的指令。


函数:pg_Fetch_Array()

PostgreSQL 数据库函数库

pg_Fetch_Array

返回数组资料。

语法: array pg_fetch_array(int result, int row);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到数组变量中。若 result 没有资料，则返回 false 值。参数 result 为使用 pg_Exec() 所返回的代码值。参数 row 为列数。

使用范例

<?php
$conn = pg_pconnect("","","","","publisher");
if (!$conn) {
echo "错误, 无法连接\n";
exit;
}
$result = pg_Exec($conn, "SELECT * FROM authors");
if (!$result) {
echo "错误, 无法查询\n";
exit;
}
$arr = pg_fetch_array($result, 0);
echo $arr[0]." <- array\n";
$arr = pg_fetch_array ($result, 1);
echo $arr["author"] . " <- array\n";
?>


函数:pg_Fetch_Object()

PostgreSQL 数据库函数库

pg_Fetch_Object

返回类资料。

语法: object pg_fetch_object(int result, int row);

返回值: 类

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到类变量中。若 result 没有资料，则返回 false 值。参数 result 为使用 pg_Exec() 所返回的代码值。参数 row 为列数。

使用范例

<?php
$database = "verlag";
$db_conn = pg_connect("localhost", "5432", "", "", $database);
if (!$db_conn): ?>
 <b>无法连上 <? echo $database ?> 数据库</b><?php
exit;
endif;

$qu = pg_exec ($db_conn, "SELECT * FROM verlag ORDER BY autor");
$row = 0;

while ($data = pg_fetch_object ($qu, $row)):
echo $data->autor." (";
echo $data->jahr ."): ";
echo $data->titel."<BR>";
$row++;
endwhile; ?>

<pre><?php
$fields[] = Array("autor", "Author");
$fields[] = Array("jahr", " Year");
$fields[] = Array("titel", " Title");
$row = 0;
while ($data = pg_fetch_object($qu, $row)):
echo "<hr><p>\n";
reset ($fields);
while (list (,$item) = each($fields)):
echo $item[1].": ".$data->$item[0]."\n";
endwhile;
$row++;
endwhile;
echo "<p><hr>"; ?>
</pre><?php
pg_freeResult($qu);
pg_close($db_conn);
?>


函数:pg_Fetch_Row()

PostgreSQL 数据库函数库

pg_Fetch_Row

返回单列的各字段。

语法: array pg_fetch_row(int result, int row);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引，第一个的索引值是 0。若 result 没有资料，则返回 false 值。参数 row 表列数。

使用范例

<?php
$conn = pg_pconnect("","","","","publisher");
if (!$conn) {
echo "连接失败\n";
exit;
}
$result = pg_Exec($conn, "SELECT * FROM authors");
if (!$result) {
echo "查询失败\n";
exit;
}
$row = pg_fetch_row($result, 0);
echo $row[0] . " <- row\n";

$row = pg_fetch_row($result, 1);
echo $row[0] . " <- row\n";

$row = pg_fetch_row($result, 2);
echo $row[1] . " <- row\n";
?>

参考


函数:pg_FieldIsNull()

PostgreSQL 数据库函数库

pg_FieldIsNull

检查字段是否有资料。

语法: int pg_fieldisnull(int result, int row, mixed field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可检查指定的字段是否有资料。参数 result 为查询结果代码。参数 row 为指定列数，第一个的索引值是 0。参数 field 为指定的字段。返回 0 表示有资料，返回 1 表示无资料 (Null)。


函数:pg_FieldName()

PostgreSQL 数据库函数库

pg_FieldName

返回指定字段的名称。

语法: string pg_fieldname(int result, int field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得指定字段的名称。参数 result 为查询结果代码。参数 field 为指定的字段，第一栏为 0。


函数:pg_FieldNum()

PostgreSQL 数据库函数库

pg_FieldNum

取得指定字段的行数。

语法: int pg_fieldnum(int result, mixed field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得指定字段的行数。参数 result 为查询结果代码。参数 field 为指定的字段，第一栏为 0。若有错误则返回 -1 值。


函数:pg_FieldPrtLen()

PostgreSQL 数据库函数库

pg_FieldPrtLen

计算可列示的长度。

语法: int pg_fieldprtlen(int result, int row, mixed field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得指定字段的可列示字符长度。参数 result 为查询结果代码。参数 row 表指定的列。参数 field 为指定的字段，第一栏为 0。若有错误则返回 -1 值。


函数:pg_FieldSize()

PostgreSQL 数据库函数库

pg_FieldSize

计算指定字段的长度。

语法: int pg_fieldsize(int result, mixed field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得指定字段的长度 (位组)。参数 result 为查询结果代码。参数 field 为指定的字段，第一栏为 0。若有错误则返回 -1 值。


函数:pg_FieldType()

PostgreSQL 数据库函数库

pg_FieldType

获得目前字段的类型。

语法: string pg_fieldtype(int result, mixed field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数可以得到目前所在字段的类型格式。返回的字符串为字段的类型，包括了 int、real、string....等等。参数 result 为查询结果代码。参数 field 为指定的字段，第一栏为 0。若有错误则返回 -1 值。


函数:pg_FreeResult()

PostgreSQL 数据库函数库

pg_FreeResult

释放返回占用内存。

语法: boolean pg_freeresult(int result);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数可以释放目前 PostgreSQL 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放。参数 result 为查询结果代码。


函数:pg_GetLastOid()

PostgreSQL 数据库函数库

pg_GetLastOid

取得最后的类代码。

语法: int pg_getlastoid(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数获取最后的类代码，类是由 pg_Exec() 所执行的 INSERT SQL 指令产生的。参数 result 为查询结果代码。若不是由 pg_Exec() 的 INSERT 产生类，则会产生错误，返回 -1 值。


函数:pg_Host()

PostgreSQL 数据库函数库

pg_Host

取得连接机器名称。

语法: string pg_host(int connection);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得目前连接中的 PostgreSQL 服务器名称。参数 connection 为连接代码。


函数:pg_loclose()

PostgreSQL 数据库函数库

pg_loclose

关闭大型类。

语法: void pg_loclose(int fd);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来关闭大型类 (Inversion Large Object)。参数 fd 是由 pg_loopen() 所打开的文件代码。


函数:pg_locreate()

PostgreSQL 数据库函数库

pg_locreate

建立大型类。

语法: int pg_locreate(int connection);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来建立大型类 (Inversion Large Object)。参数 connection 为连接代码。PostgreSQL 数据库的存取模式只有 INV_READ、INV_WRITE 二种，INV_ARCHIVE 已经从 PostgreSQL 6.3 之后的版本移除。返回值为类代码。


函数:pg_loopen()

PostgreSQL 数据库函数库

pg_loopen

打开大型类。

语法: int pg_loopen(int connection, int objoid, string mode);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开大型类 (Inversion Large Object)。参数 connection 为连接代码。参数 objoid 为类代码。参数 mode 的值有只读 (r)、只写 (w) 及可读写 (rw) 等三种。返回值为文件代码。


函数:pg_loread()

PostgreSQL 数据库函数库

pg_loread

读取大型类。

语法: string pg_loread(int fd, int len);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来读取大型类 (Inversion Large Object)。参数 fd 为类的文件代码。参数 len 为欲读取的最大长度。


函数:pg_loreadall()

PostgreSQL 数据库函数库

pg_loreadall

读取大型类并输出。

语法: void pg_loreadall(int fd);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来读取大型类 (Inversion Large Object)，并将结果输出到标准输出设备中。参数 fd 为类的文件代码。


函数:pg_lounlink()

PostgreSQL 数据库函数库

pg_lounlink

删除大型类。

语法: void pg_lounlink(int connection, int lobjid);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来删除大型类 (Inversion Large Object)。参数 connection 为连接代码。参数 objoid 为类代码。


函数:pg_lowrite()

PostgreSQL 数据库函数库

pg_lowrite

读取大型类。

语法: int pg_lowrite(int fd, string buf);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来写入大型类 (Inversion Large Object)。参数 fd 为类的文件代码。参数 buf 为欲写入类的字符串。若有错误则返回 false 值，正确则返回写入字符串的位组 (byte) 数。


函数:pg_NumFields()

PostgreSQL 数据库函数库

pg_NumFields

取得返回字段的数目。

语法: int pg_numfields(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回字段的数目。参数 result 为 PostgreSQL 服务器执行 query 的返回代码。若有错误则返回 -1。


函数:pg_NumRows()

PostgreSQL 数据库函数库

pg_NumRows

取得返回列的数目。

语法: int pg_numrows(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回列的数目。参数 result 为 PostgreSQL 服务器执行 query 的返回代码。若有错误则返回 -1。


函数:pg_Options()

PostgreSQL 数据库函数库

pg_Options

取得连接机器选项。

语法: string pg_options(int connection);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得目前连接中 PostgreSQL 服务器的选项。参数 connection 为连接代码。


函数:pg_pConnect()

PostgreSQL 数据库函数库

pg_pConnect

打开 PostgreSQL 服务器持续连接。

语法: int pg_pconnect(string [host], string [port], string [options], string [tty], string database);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数打开与 PostgreSQL 服务器的持续连接。参数 host 表服务器名称。参数 port 为连接埠。参数 options 为选项。参数 tty 为终端机。参数 database 为数据库名。成功返回连接代号、失败返回 false 值。本函数和 pg_Connect() 不同的地方在于使用本函数打开数据库时，程序会先寻找是否曾经执行过本函数，若执行过则返回先前执行的 ID。此外程序结束后并不会关闭连接，而是等下次程序使用。

参考

pg_Connect()


函数:pg_Port()

PostgreSQL 数据库函数库

pg_Port

取得连接机器埠号。

语法: int pg_port(int connection);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得目前连接中 PostgreSQL 服务器的埠号。参数 connection 为连接代码。


函数:pg_Result()

PostgreSQL 数据库函数库

pg_Result

取得查询 (query) 的结果。

语法: mixed pg_result(int result, int row, mixed field);

返回值: 混合类型资料

函数种类: 数据库功能

内容说明

本函数取得一格 query 的结果。参数 field 可以是字段名称、顺序或者是 FieldName.TableName 的格式。


函数:pg_tty()

PostgreSQL 数据库函数库

pg_tty

取得连接机器终端机。

语法: string pg_tty(int connection);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得目前连接中 PostgreSQL 服务器的终端机名称，供调试等使用。参数 connection 为连接代码。


函数:phpinfo()

PHP 选项及相关信息函数库

phpinfo

返回 PHP 所有相关信息。

语法: int phpinfo(void);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数返回 PHP 的所有信息。包括了 PHP 的编译选项及扩充配置、PHP 版本、服务器信息及环境变量、PHP 环境变量、操作系统版本信息、路径及环境变量配置、HTTP 标头、及版权宣告。

参考

phpversion()


函数:phpversion()

PHP 选项及相关信息函数库

phpversion

返回 PHP 版本信息。

语法: string phpversion(void);

返回值: 字符串

函数种类: PHP 系统功能

内容说明

本函数返回 PHP 的版本信息。

使用范例

下例返回值类似 '本站使用 PHP 版本为: 3.0.11'

<?php
echo "本站使用 PHP 版本为: ".phpversion();
?>

参考

phpinfo()


函数:pi()

数学运算函数库

pi

圆周率。

语法: double pi(void);

返回值: 倍精确数

函数种类: 数学运算

内容说明

本函数返回圆周率。不需输入参数。


函数:popen()

文件系统函数库

popen

打开文件。

语法: int popen(string command, string mode);

返回值: 整数

函数种类: 文件存取

内容说明

本函数执行指令开档，而该文件是用管道方式处理的文件。用本函数打开的文件只能是单向的 (只能读或只能写)，而且一定要用 pclose() 关闭。在文件操作上可使用 fgets()、fgetss() 与 fputs()。若是开档发生错误，返回 false 值。

使用范例

<?
$fp = popen( "/bin/ls", "r" );
?>

参考

pclose()


函数:pos()

数组处理函数库

pos

返回数组目前的元素。

语法: mixed pos(array array);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

此函数其实就是 current() 函数。

参考


函数:pow()

数学运算函数库

pow

次方。

语法: float pow(float base, float exp);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数计算次方值。参数 base 为基底，exp 为幂数。

使用范例

<?php
print(pow(2,3)); // 8
print(pow(5,4)); // 625
?>

参考


函数:preg_match()

Perl 相容语法函数库

preg_match

字符串比对解析。

语法: int preg_match(string pattern, string subject, array [matches]);

返回值: 整数/数组

函数种类: 资料处理

内容说明

本函数以 pattern 的规则来解析比对字符串 subject。比对结果返回的值放在数组参数 matches 之中，matches[0] 内容就是原字符串 subject、matches[1] 为第一个合乎规则的字符串、matches[2] 就是第二个合乎规则的字符串，余类推。若省略参数 matches，则只是单纯地比对，找到则返回值为 true。


函数:preg_match_all()

Perl 相容语法函数库

preg_match_all

字符串整体比对解析。

语法: int preg_match_all(string pattern, string subject, array matches, int [order]);

返回值: 整数

函数种类: 资料处理

内容说明

本函数以 pattern 的规则来整体解析比对字符串 subject。比对结果返回的值放在数组参数 matches 之中，并依顺序值 order 排序。参数 order 的值有 PREG_PATTERN_ORDER 及 PREG_SET_ORDER 二种。若没有 order 值，则系统自动以 PREG_PATTERN_ORDER 代入 order 值中。返回值为合乎比对结果的数目，若没有或错误则返回 false 值。

使用范例

PREG_PATTERN_ORDER 的例子

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<div align=left>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

PREG_SET_ORDER 的例子

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U", "<div align=left>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


函数:preg_replace()

Perl 相容语法函数库

preg_replace

字符串比对解析并取代。

语法: mixed preg_replace(mixed pattern, mixed replacement, mixed subject);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

本函数以 pattern 的规则来解析比对字符串 subject，欲取而代之的字符串为参数 replacement。返回值为混合类型资料，为取代后的字符串结果。

使用范例

下例返回值为 $startDate = 6/19/1969

<?php
$patterns = array("/(19|20\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/");
$replace = array("\\3/\\4/\\1", "$\\1 =");
print preg_replace($patterns, $replace, "{startDate} = 1969-6-19");
?>


函数:preg_split()

Perl 相容语法函数库

preg_split

将字符串依指定的规则切开。

语法: array preg_split(string pattern, string subject, int [limit]);

返回值: 数组

函数种类: 资料处理

内容说明

本函数可将字符串依指定的规则分开。切开后的返回值为数组变量。参数 pattern 为指定的规则字符串、参数 subject 则为待处理的字符串、参数 limit 可省略，表示欲处理的最多合乎值。


函数:prev()

数组处理函数库

prev

将数组的内部指针往前移动。

语法: mixed prev(array array);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

这个函数返回数组前一个元素的内部指针，若没有前一个元素，则返回 false 值。当然，若是一个空的数组，它也返回 false 值。要正确地处理可能是空的数组，可以使用 each() 函数。此函数有点像 next() 函数，只是 prev() 函数是将指针往前移，而 next() 函数是将指针往后移。

参考


函数:print()

字符串处理函数库

print

输出字符串。

语法: boolean print(string arg);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数输出字符串。若成功则返回 1，失败则返回 0。例如传输中途客户的浏览器突然挂了，则会造成输出失败的情形。

参考


函数:printf()

字符串处理函数库

printf

输出格式化字符串。

语法: int printf(string format, mixed [args]...);

返回值: 整数

函数种类: 资料处理

内容说明

本函数依参数 format 指定的内容格式将字符串格式化。格式的细节可以参考 sprintf()。

参考


函数:putenv()

PHP 选项及相关信息函数库

putenv

配置系统环境变量。

语法: void putenv(string setting);

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数用来配置系统环境变量。

使用范例

配置 Oracle 数据库需使用的环境变量 NLS_LANG，返回资料含中文 BIG5 码。

<?
putenv("NLS_LANG=american_taiwan.zht16big5");
?>


函数:quoted_printable_decode()

字符串处理函数库

quoted_printable_decode

将 qp 编码字符串转成 8 位字符串。

语法: string quoted_printable_decode(string str);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数可以将 quoted-printable 后的字符串解码成为 8 位编码的字符串。而本函数类似 imap_qprint() 函数，只一不同的地方是使用 imap_qprint() 函数需要让系统加入 IMAP 的模块，而本函数不需要 IMAP 模块。


函数:QuoteMeta()

字符串处理函数库

QuoteMeta

加入引用符号。

语法: string quotemeta(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串中含有 . \\ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线 "\" 符号。

参考


函数:rand()

数学运算函数库

rand

取得随机数值。

语法: int rand([int min], [int max]);

返回值: 整数

函数种类: 数学运算

内容说明

本函数用来取得随机数值。若没有指定随机数的最大及最小范围，本函数会自动的从 0 到 RAND_MAX 中取一个随机数。若有指定 min 及 max 的参数，则从指定参数中取一个数字。例如 rand(38, 49) 则会从 38 到 49 之间取一个随机数值，UNIX 系统包含 49、Win32 系统不包含 49 (zkimmel@earthlink.net 10-May-1999)。值得注意的是为使随机数的乱度最大，每次在取随机数之前最好使用 srand() 以配置新的随机数种子。

参考


函数:range()

数组处理函数库

range

建立一个整数范围的数组。

语法: array range(int low, int high);

返回值: 数组

函数种类: 资料处理

内容说明

此函数建立一个由小到大的连续整数数组。在 shuffle() 函数有使用范例。

参考

shuffle()


函数:rawurldecode()

字符串处理函数库

rawurldecode

从 URL 专用格式字符串还原成普通字符串。

语法: string rawurldecode(string str);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将字符串解码。从 URL 的字符串专用格式解成普通字符串。详细的编码解码信息及规格文件可以参考 RFC 1738。

参考

rawurlencode()


函数:rawurlencode()

字符串处理函数库

rawurlencode

将字符串编码成 URL 专用格式。

语法: string rawurldecode(string str);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将字符串编码成 URL 的字符串专用格式，特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如，空格就会变成 %20。

使用范例

<?php
echo '<a href="ftp://guest:', rawurlencode ('foo @+%/'), '@localhost/x.txt">';
?>

参考

rawurldecode()


函数:readdir()

目录管理函数库

readdir

读取目录 handle。

语法: string readdir(int dir_handle);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数用来读取目录。返回目录中的文件名称，读取不照任何特殊的顺序。

使用范例

本例列出目前目录的所有文件

<?php
$handle=opendir('.');
echo "目录 handle: $handle\n";
echo "文件:\n";
while ($file = readdir($handle)) {
echo "$file\n";
}
closedir($handle);
?>


函数:readfile()

文件系统函数库

readfile

输出文件。

语法: int readfile(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数读取文件，并将文件内容写入标准输出设备中。返回值是读取的文件大小。若有错误返回 false 值，可以在函数前面加入 @，变成 @readfile，就可以隐藏起来。和 fopen() 用法一样，若参数 filename 为 "http://......" 则本函数利用 HTTP 1.0 协议与服务器连接，文件指针则指到服务器返回文件的起始处。若参数 filename 为 "ftp://......." 则本函数会与服务器连接，文件指针指到指定的文件处。若 FTP 服务器没有支持被动模式 (passive mode ftp) 则返回失败值。打开的 FTP 文件可以是读取或写入其中之一，但不能读或写二种同时使用。其它的情形，本函数打开本地的文件，文件的指针则指向打开的文件。若开档失败，则返回 false 值。

参考


函数:readgzfile()

压缩文件函数库

readgzfile

读出压缩文件。

语法: boolean readgzfile(string filename);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数将压缩文件全部读出并解压缩，之后将内容送到标准输出设备上 (stdout)。参数 filename 为文件名称。本函数其实也可以读取非压缩文件至标准输出设备中。


函数:readlink()

文件系统函数库

readlink

返回符号链接 (symbolic link) 目标档。

语法: string readlink(string path);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数和 C 语言的同名函数用法相同，返回符号链接的文件。若发生错误则返回 0。

参考


函数:recode_file()

GNU 记录函数库

recode_file

记录文件或文件请求到记录中。

语法: boolean recode_file(int input, int output);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数依请求将文件记录到记录之中。成功则返回 true 值。


函数:recode_string()

GNU 记录函数库

recode_string

记录字符串到记录中。

语法: boolean recode_string(string request, string string);

返回值: 布尔值

函数种类: 特殊文件格式

内容说明

本函数依请求记录字符串到记录中。成功则返回 true 值。


函数:register_shutdown_function()

杂项函数库

register_shutdown_function

定义 PHP 程序执行完成后执行的函数。

语法: int register_shutdown_function(string func);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数向系统定义 PHP 程序 (Script) 执行结束之后所要执行的函数。当执行该指定的函数时，由于无法看到返回值，因此调试较困难。


函数:rename()

文件系统函数库

rename

更改档名。

语法: int rename(string oldname, string newname);

返回值: 整数

函数种类: 文件存取

内容说明

本函数可将旧档名 oldname 改成新档名 newname。成功则返回 true、失败则返回 false。


函数:reset()

数组处理函数库

reset

将数组的指针指到数组第一个元素。

语法: mixed reset(array array);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

本函数将数组的指针重设，将指针改指到数组的第一个元素。返回值的内容也是数组的第一个元素。

使用范例

技巧:
kk@shonline.de 指出 (30-Jul-1998)，当数组的资料不够稳定时，使用 reset() 会有警告信息。最常发生的时候是处理 HTML 表单(form)的输入资料时，若用户输入的资料不够充份，或用户故意增删输入 (input) 字段，就有可能会有警告信息。用 @reset() 的方式可使警告信息不出现 (在 reset() 前加 @)，不过这只是掩耳盗铃的方式；要斧底抽薪的方法是使用 if (isset()) 的方式 (参见 4.48.14 isset() 函数)，如下例

<?
if (isset($form_array)) {
reset($form_array);
while (list($k, $v) = each($form_array)) {
do_something($k, $v);
}
}
?>

参考


函数:rewind()

文件系统函数库

rewind

重置开档的读写位置指针。

语法: int rewind(int fp);

返回值: 整数

函数种类: 文件存取

内容说明

本函数重置文件的读写位置指针到标案的开头处。发生错误则返回 0。文件 fp 必须是有效且用 fopen() 打开的文件。

使用范例

fseek ftell


函数:rewinddir()

目录管理函数库

rewinddir

重设目录 handle。

语法: void rewinddir(int dir_handle);

返回值: 无

函数种类: 文件存取

内容说明

本函数用来重设目录资料流到开始处。


函数:rmdir()

文件系统函数库

rmdir

删除目录。

语法: int rmdir(string dirname);

返回值: 整数

函数种类: 文件存取

内容说明

本函数可用来删除目录。欲删除的路径必须是空的目录，且权限必须要合乎要求。发生错误则返回 0。

参考

mkdir()


函数:round()

数学运算函数库

round

四舍五入。

语法: double round(double val);

返回值: 倍精确数

函数种类: 数学运算

内容说明

本函数用来将数字小数点后四舍五入。

使用范例

<?php
$foo1 = round(3.4);
$foo2 = round(3.5);
$foo3 = round(3.6);
echo "round(3.4): ".$foo1."<br>\n";
echo "round(3.5): ".$foo2."<br>\n";
echo "round(3.6): ".$foo3;
?>

参考


函数:rsort()

数组处理函数库

rsort

将数组的值由大到小排序。

语法: void rsort(array array);

返回值: 无

函数种类: 资料处理

内容说明

本函数将数组依由大到小的方式重排。

使用范例

<?
$fruits = array("lemon","orange","banana","apple");
rsort($fruits);
for(reset($fruits); list($key,$value) = each($fruits); ) {
echo "fruits[$key] = ".$value."\n";
}
?>
处理后的结果为
fruits[0] = orange
fruits[1] = lemon
fruits[2] = banana
fruits[3] = apple

参考


函数:sem_acquire()

信号与共享内存函数库

sem_acquire

捕获信号。

语法: int sem_acquire(int sem_identifier);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数用来捕获系统信号 (semaphore)。若捕捉信号的数量超过限度 (max_acquire)，则行程在捕捉时会先封锁 (block) 住信号。

参考


函数:sem_get()

信号与共享内存函数库

sem_get

取得信号代码。

语法: int sem_get(int key, int [max_acquire] , int [perm]);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数用来取得 System V 系统信号 (semaphore) 的代码值。参数 key 为存取信号的键值。参数 max_acquire 可省略，默认值为 1，表示同时可取得的处理数目。参数 perm 可省略，表示该内存空间的控制权限，默认值为 0666。

参考


函数:sem_release()

信号与共享内存函数库

sem_release

释出信号。

语法: int sem_release(int sem_identifier);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数用来释出调用行程捕获的系统信号 (semaphore)。成功则返回 true 值。

参考


函数:serialize()

杂项函数库

serialize

储存资料到系统中。

语法: string serialize(mixed value);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可储存资料到系统中。储存的资料以 byte-stream 方式存放。变量 value 为混合类型，包括整数、倍精确浮点数字符串、数组以及类的属性 (类的方法无法储存)。

参考

unserialize()


函数:session_decode()

Session 函数库

session_decode

Session 资料解码。

语法: boolean session_decode(string data);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数可将 Session 资料解码。参数 data 即为欲解码的资料。成功则返回 true 值。


函数:session_destroy()

Session 函数库

session_destroy

结束 session。

语法: boolean session_destroy(void);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数结束目前的 Session。本函数没有参数，且返回值均为 true。


函数:session_encode()

Session 函数库

session_encode

Session 资料编码。

语法: boolean session_encode(void);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数可将 Session 资料编码，编码以 ZEND 引擎做哈稀编码。本函数没有参数。成功则返回 true 值。

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:session_id()

Session 函数库

session_id

存取目前 session 代号。

语法: string session_id(string [id]);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可取得或者重新配置目前存放 Session 的代号。若无参数 id 则表示只有取得目前 Session 的代号，加上参数则表示将 Session 代号设成新指定的 id。输入及返回均为字符串。


函数:session_is_registered()

Session 函数库

session_is_registered

检查变量是否注册。

语法: boolean session_is_registered(string name);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数可检查目前的 Session 之中是否已有指定的变量注册。参数 name 即为欲检查的变量名。成功则返回 true 值。


函数:session_module_name()

Session 函数库

session_module_name

存取目前 session 模块。

语法: string session_module_name(string [module]);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可取得或者重新配置目前 Session 的模块。若无参数 module 则表示只获取目前 Session 的模块，加上参数则表示将 Session 模块设为参数 module。


函数:session_name()

Session 函数库

session_name

存取目前 session 名称。

语法: string session_name(string [name]);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可取得或者重新配置目前 Session 的名称。若无参数 name 则表示单单获取目前 Session 名称，加上参数则表示将 Session 名称设为参数 name。

使用范例

下面的范例为 Session 片段程序

<?php
$username="guest1";
if(isset($username)) {
session_name($username);
}
echo "您是 ".session_name()."\n";
?>


函数:session_register()

Session 函数库

session_register

注册新的变量。

语法: boolean session_register(string name);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数在全域变量中增加一个变量到目前的 Session 之中。参数 name 即为欲加入的变量名。成功则返回 true 值。


函数:session_save_path()

Session 函数库

session_save_path

存取目前 session 路径。

语法: string session_save_path(string [path]);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可取得或者重新配置目前存放 Session 的路径。若无参数 path 则表示只有取得目前 Session 的路径目录名，加上参数 path 则表示将 Session 存在新的 path 上。


函数:session_start()

Session 函数库

session_start

初始 session。

语法: boolean session_start(void);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数初始化一个新的 Session，若该客户已在 Session 之中，则连上原 Session。本函数没有参数，且返回值均为 true。


函数:session_unregister()

Session 函数库

session_unregister

删除已注册变量。

语法: boolean session_unregister(string name);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数在目前的 Session 之中删除全域变量上的变量。参数 name 即为欲删除的变量名。成功则返回 true 值。


函数:set_file_buffer()

文件系统函数库

set_file_buffer

配置文件缓冲区大小。

语法: int set_file_buffer(int fp, int buffer);

返回值: 整数

函数种类: 文件存取

内容说明

本函数配置文件的缓冲区大小供写入文件使用。若 buffer 值设为 0，则在写入操作时无缓冲区。成功则返回 0 值。值得注意的是当文件打开 (fopen) 时，会使用本函数将默认的缓冲区设为 8k。

参考

fopen()


函数:set_magic_quotes_runtime()

PHP 选项及相关信息函数库

set_magic_quotes_runtime

配置 magic_quotes_runtime 值。

语法: long set_magic_quotes_runtime(int new_setting);

返回值: 长整数

函数种类: PHP 系统功能

内容说明

本函数用来配置 magic_quotes_runtime 值。

参考


函数:set_socket_blocking()

网络函数库

set_socket_blocking

切换阻塞与无阻塞模式。

语法: int set_socket_blocking(int socket descriptor, int mode);

返回值: 整数

函数种类: 网络系统

内容说明

若参数 mode 值为 false，会将 socket 切换到无阻塞模式 (non-blocking mode)；若 mode 值为 true，则切换成阻塞模式。当使用 fgets() 等函数读取 socket 时，无法确定返回时间，用无阻塞模式可使行程继续，不会因无法读到资料而阻塞。


函数:set_time_limit()

PHP 选项及相关信息函数库

set_time_limit

配置该页最久执行时间。

语法: void set_time_limit(int seconds);

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数用来配置该页最久执行时间。默认值是 30 秒，在 php.ini 中的 max_execution_time 变量配置，若配置为 0 则不限定最久时间。当执行到该函数时，才开始计算。例如，若默认是 30 秒，而在执行到该函数前已执行了 25 秒，而用本函数改为 20 秒，则该页面最长执行时间为 45 秒。

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:setcookie()

HTTP 相关函数库

setcookie

送出 Cookie 信息到浏览器。

语法: int setcookie(string name, string value, int expire, string path, string domain, int secure);

返回值: 整数

函数种类: 网络系统

内容说明

本函数会跟着标头 Header 送出一段小信息字符串到浏览器。使用本函数要在送出 HTML 资料前，实际上 cookie 也算标头的一部份。本函数的参数除了第一个 name 之外，都是可以省略的。参数 name 表示 cookie 的名称；value 表示这个 cookie 的值，这个参数为空字符串则表示取消浏览器中该 cookie 的资料；expire 表示该 cookie 的有效时间；path 为该 cookie 的相关路径；domain 表示 cookie 的网站；secure 则需在 https 的安全传输时才有效。想得到更多的 cookie 信息可以到 http://www.netscape.com/newsref/std/cookie_spec.html，由 cookie 原创者 Netscape 所提供的完整信息。

使用范例

dante@mpath.com (27-May-1999) 所提供的 setcookie() 及 header() 范例。

<?php
$status = 0;
if (isset($myTstCky) && ($myTstCky == "ChocChip")) $status = 1;
if (!isset($CCHK)) {
setcookie("myTstCky", "ChocChip");
header("Location: $PHP_SELF?CCHK=1");
exit;
}
?>
<html>
<head><title>Cookie Check</title></head>
<body bgcolor="#FFFFFF" text="#000000">
Cookie Check Status:
<?php
printf ('<font color="#%s">%s</font><br>;',
$status ? "00FF00" : "FF0000",
$status ? "PASSED!" : "FAILED!");
?>
</body>
</html>


函数:setlocale()

字符串处理函数库

setlocale

配置地域化信息。

语法: string setlocale(string category, string locale);

返回值: 字符串

函数种类: 操作系统与环境

内容说明

本函数用来配置地域的信息。参数 category 有下列的选择：

  • LC_ALL 包括下面的全项选项都要。
  • LC_COLLATE 配置字符串比较，PHP 目前尚未实作出来本项。
  • LC_CTYPE 配置字符类别及转换。例如全变大写 strtoupper()。
  • LC_MONETARY 配置金融货币，PHP 目前尚未实作。
  • LC_NUMERIC 配置小数点后的位数。
  • LC_TIME 配置时间日期格式，与 strftime() 合用。

而参数 locate 若是空字符串 ""，则会使用系统环境变量的 locate 或是 LANG 的值。若 locate 为零，则不会改变地域化配置。返回新的地域，若系统尚未实作则返回 false。

使用范例

Michal Fita <manveru@witrynka.pl> 于 11-Jan-1999 11:01 提出这个以波兰作地域化的例子。

<?
setlocale("LC_ALL", "pl");
$net = "1234,56";
$gross = "1,22" * $net;
printf("毛利: %s, 净利: %s", $gross, $net");
/* 波兰总?/font>[值税为 22% */
?>

返回值则为
毛利: 1234,56, 净利: 1506,1632


函数:settype()

变量处理函数库

settype

配置变量类型。

语法: int settype(string var, string type);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数用来配置或转换变量类型。成功返回 true 值，其它情形返回 false 值。参数 var 为原来的变量名，参数 type 为下列的类型之一：integer、double、string、array 与 object。

参考

gettype()


函数:shm_attach()

信号与共享内存函数库

shm_attach

打开建立共享内存空间。

语法: int shm_attach(int key, int [memsize], int [perm]);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数用来打开或者建立共享内存空间。参数 key 为这部分的键。参数 memsize 可省略，表示所需最小的内存空间 (单位为 byte 位组)，默认值在 php3.ini 或 php.ini 中的 sysvshm.init_mem 配置，若无配置则为 10000 bytes。参数 perm 亦可省略，为该内存空间的使用权限，默认值为 666。返回值为共享内存的ID 值，可供程序使用。


函数:shm_detach()

信号与共享内存函数库

shm_detach

中止共享内存空间链接。

语法: int shm_detach(int shm_identifier);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数用来中止与共享内存空间的链接。参数 shm_identifier 即为欲停止部分的共享内存 ID 值。


函数:shm_get_var()

信号与共享内存函数库

shm_get_var

取得内存空间中指定的变量。

语法: mixed shm_get_var(int shm_identifier, int variable_key);

返回值: 混合类型资料

函数种类: 操作系统与环境

内容说明

本函数可用来取得内存空间中指定的变量值。参数 shm_identifier 为欲取得的共享内存 ID 值。参数 variable_key 为欲取得的变量名称键。返回值即为指定变量键的值。


函数:shm_put_var()

信号与共享内存函数库

shm_put_var

加入或更新内存空间中的变量。

语法: int shm_put_var(int shm_identifier, int variable_key, mixed variable);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数可用来增加或者修改内存空间中变量值。参数 shm_identifier 为欲增加修改的共享内存 ID 值。参数 variable_key 为欲增加修改的变量名称键。参数 variable 为变量的内容，变量的类型可以是倍精确数 (double)、整数 (integer)、字符串 (string) 或者是数组 (array)。


函数:shm_remove()

信号与共享内存函数库

shm_remove

清除内存空间。

语法: int shm_remove(int shm_identifier);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数用来清除共享内存空间的所有资料。参数 shm_identifier 即为欲停止部分的共享内存 ID 值。


函数:shm_remove_var()

信号与共享内存函数库

shm_remove_var

删除内存空间中指定的变量。

语法: int shm_remove_var(int id, int variable_key);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数可用来删除内存空间中指定的变量值。参数 shm_identifier 为欲除去的共享内存 ID 值。参数 variable_key 为欲删除的变量名称键。


函数:shuffle()

数组处理函数库

shuffle

将数组的顺序弄混。

语法: void shuffle(array array);

返回值: 无

函数种类: 资料处理

内容说明

本函数将数组以随机的方式使全部元素重新乱排。

使用范例

<?
$numbers = range(1,20);
srand(time());
shuffle($numbers);
while (list(,$number) = each($numbers)) {
echo "$number ";
}
?>

注意:
ccunning@math.ohio-state.edu 指出 (31-May-1999)，在 Solaris 上由于受了 libc 函数库的影响，会使本函数出现问题。目前解决的方式如下面的例子。(注: 或许之后新的 PHP 版本会修正这个问题。)
<?
function myshuffle($array) {
mt_srand((double) microtime()*1000000);
$num = count($array);
for ($i=0; $i<$num-1; $i++) {
$n = mt_rand($i+1,$num);
$temp = $array[$n];
$array[$n] = $array[$i];
$array[$i] = $temp;
}
}
$array = array(1,2,3,4,5,6,7,8,9,10);
myshuffle(&$array);
while (list(,$var)=each($array)) {
echo $var . " ";
}
?>

参考


函数:similar_text()

字符串处理函数库

similar_text

计算字符串相似度。

语法: int similar_text(string first, string second, double [percent]);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来计算比较二字符串的相似程度。


函数:Sin()

数学运算函数库

Sin

正弦计算。

语法: float sin(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数计算参数 arg 的正弦值 (sine)。

参考


函数:sizeof()

数组处理函数库

sizeof

获知数组的大小。

语法: int sizeof(array array);

返回值: 整数

函数种类: 资料处理

内容说明

本函数以整数类型返回数组的元素个数。

参考

count()


函数:sleep()

杂项函数库

sleep

暂停执行。

语法: void sleep(int seconds);

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数可暂时使程序停止执行。参数 seconds 为要暂停的秒数。

参考

usleep()


函数:snmp_get_quick_print()

SNMP 网管函数库

snmp_get_quick_print

取得 UCD 函数库中的 quick_print 值。

语法: boolean snmp_get_quick_print(void);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数可用来取得 UCD SNMP 函数库中的 quick_print 值，在 Windows NT 系统上本函数无法作用。本函数不需要输入参数，返回 0 表示 quick_print 关闭，1 表示打开。


函数:snmp_set_quick_print()

SNMP 网管函数库

snmp_set_quick_print

配置 UCD 函数库中的 quick_print 值。

语法: void snmp_set_quick_print(boolean quick_print);

返回值: 无

函数种类: 网络系统

内容说明

本函数配置 UCD SNMP 函数库中的 quick_print 值，在 Windows NT 系统上本函数无法作用。参数 quick_print 值为 0 表示 quick_print 关闭，1 表示打开。本函数无返回值。

使用范例

<?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."\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."\n";
?>

返回值为
Timeticks: (0) 0:00:00.00
0:00:00.00


函数:snmpget()

SNMP 网管函数库

snmpget

取得指定类识别码。

语法: int snmpget(string hostname, string community, string object_id);

返回值: 整数

函数种类: 网络系统

内容说明

本函数可用来取得指定的类识别代码 (OID, Object Identifier)。参数 hostname 为指定的机器。参数 community 为社群名称，有 public 或 private 等。参数 object_id 即为 OID 类，为 MIB 所定义的类。返回值为 OID 值，若失败则返回 false。

使用范例

下面为部份范例

<?php
snmpget("127.0.0.1", "public", "system.SysContact.0");
?>


函数:snmpwalk()

SNMP 网管函数库

snmpwalk

取得所有类。

语法: array snmpwalk(string hostname, string community, string object_id, int [timeout], int [retries]);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可用来取得所有类识别代码 (OID, Object Identifier)，取得类为从根类 (root) 开始的全部 MIB 类。参数 hostname 为指定的机器。参数 community 为社群名称，有 public 或 private 等。参数 object_id 即为 OID 类，为 MIB 所定义的类，只要输入空字符串即可。返回值为 OID 数组，若失败则返回 false。

使用范例

下面为部份范例

<?php
$a = snmpwalk("127.0.0.1", "public", "");
for ($i=0; $i<count($a); $i++) {
echo $a[$i]."<br>\n";
}
?>


函数:snmpwalkoid()

SNMP 网管函数库

snmpwalkoid

取得网络本体树状信息。

语法: array snmpwalkoid(string hostname, string community, string object_id, int [timeout], int [retries]);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可用来取得所有类识别代码 (OID, Object Identifier)，取得类为从根类 (root) 开始的全部 MIB 类及其值。参数 hostname 为指定的机器。参数 community 为社群名称，有 public 或 private 等。参数 object_id 即为 OID 类，为 MIB 所定义的类，只要输入空字符串即可。返回值为数组，若失败则返回 false。

使用范例

下面为部份范例

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
echo $i.": ".$a[$i]."<br>\n";
}
?>


函数:solid_close()

Solid 数据库链接函数库

solid_close

关闭 solid 链接。

语法: void solid_close(int connection_id);

返回值: 无

函数种类: 数据库功能

内容说明

本函数用来关闭与 solid 数据库之间的链接。参数 connection_id 为 solid 链接代号 ID 值。若正在执行 transactions 则无法关闭链接。


函数:solid_connect()

Solid 数据库链接函数库

solid_connect

链接至 solid 数据库。

语法: int solid_connect(string dsn, string user, string password, int [cursor_type]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来链接到 solid 数据库，返回值为链接的代号 ID 值。参数 dsn 为资料来源名称 (Data Sources Name)。参数 user 及 password 分别为链接的帐号及密码。参数 cursor_type 通常省略，其值有 SQL_CUR_USE_IF_NEEDED、SQL_CUR_USE_ODBC、SQL_CUR_USE_DRIVER 及 SQL_CUR_DEFAULT 等四种。当使用复杂的资料存取时可能会有类似 "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it" 的错误信息字符串，此时若将参数 cursor_type 的值设为 SQL_CUR_USE_ODBC 就可以避开了。


函数:solid_exec()

Solid 数据库链接函数库

solid_exec

执行 SQL 指令。

语法: int solid_exec(int connection_id, string query);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来执行 SQL 的 query 指令。参数 connection_id 为 ODBC 链接代号 ID 值。参数 query 则为欲执行的指令。返回值为 Result ID 值。


函数:solid_fetchrow()

Solid 数据库链接函数库

solid_fetchrow

取得返回一列。

语法: int solid_fetchrow(int result_id, int [row_number]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的一列。参数 result_id 为 ODBC 返回 ID 值。参数 rownumber 可省略，为指定的取得列 (row)。


函数:solid_fieldname()

Solid 数据库链接函数库

solid_fieldname

取得字段名称。

语法: string solid_fieldname(int result_id, int field_number);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得 Query 的返回资料的字段名称。参数 result_id 为 solid 返回 ID 值。参数 field_number 为指定的字段，起始值为 1。


函数:solid_fieldnum()

Solid 数据库链接函数库

solid_fieldnum

取得字段数目。

语法: int solid_fieldnum(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得返回资料的字段数目。参数 result_id 为 solid 返回 ID 值。若发生错误则返回 -1。


函数:solid_freeresult()

Solid 数据库链接函数库

solid_freeresult

释出返回资料的内存。

语法: int solid_freeresult(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可用来释出返回资料所使用的内存，通常在系统内存资源不足的情形下才需要使用。参数 result_id 为 solid 返回 ID 值。返回值永远都是 true。


函数:solid_numfields()

Solid 数据库链接函数库

solid_numfields

取得字段数目。

语法: int solid_numfields(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得返回资料的字段数目。参数 result_id 为 solid 返回 ID 值。若发生错误则返回 -1。


函数:solid_numrows()

Solid 数据库链接函数库

solid_numrows

取得返回列数目。

语法: int solid_numrows(int result_id);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得返回列的数目。参数 result_id 为 solid 返回 ID 值。若有错误发生则返回 -1。


函数:solid_result()

Solid 数据库链接函数库

solid_result

取得返回资料。

语法: string solid_result(int result_id, mixed field);

返回值: 字符串

函数种类: 数据库功能

内容说明

本函数用来取得返回的资料。参数 result_id 为 solid 返回 ID 值。参数 field 可以是数字类型，代表指定的字段序号 (从 1 开始)；亦可以是字符串类型，为指定的字段名称。


函数:sort()

数组处理函数库

sort

将数组排序。

语法: void sort(array array);

返回值: 无

函数种类: 资料处理

内容说明

本函数将数组依由小到大的方式重排。

使用范例

<?
$fruits = array("lemon","orange","banana","apple");
sort($fruits);
for(reset($fruits); list($key,$value) = each($fruits); ) {
echo "fruits[$key] = ".$value."\n";
}
?>

返回的结果为
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

参考


函数:soundex()

字符串处理函数库

soundex

计算字符串的读音值

语法: string soundex(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

Soundex 值是利用英文字的读音近似值所求得的值，值由四个字符构成，第一个字符为英文字母，后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形，特别是在做搜寻引擎时面对用户传入的英文字符串，可用本函数做类似模糊比对的效果。例如 Knuth 和 Kant 二个字符串，它们的 soundex 值都是 H416。更详细的说明参考 Donald Knuth 大师的名著：电脑程序设计的艺术 (The Art Of Computer Programming) 第三卷排序和搜寻。

使用范例

<?
$str1=soundex("Wilson");
$str2=soundex("Waillsume");
echo "soundex(\"Wilson\")=$str1 等于\n";
echo "soundex(\"Waillsume\")=$str2\n";
echo "值均为 $str1";
?>

上例返回的字符串为
soundex("Wilson")=W425 等于
soundex("Waillsume")=W425
值均为 W425


函数:split()

正则表达式函数库

split

将字符串依指定的规则切开。

语法: array split(string pattern, string string, int [limit]);

返回值: 数组

函数种类: 资料处理

内容说明

本函数可将字符串依指定的规则分开。切开后的返回值为数组变量。参数 pattern 为指定的规则字符串、参数 string 则为待处理的字符串、参数 limit 可省略，表示欲处理的最多合乎值。值得注意的是本函数的 pattern 参数有区分大小写。

参考


函数:sprintf()

字符串处理函数库

sprintf

将字符串格式化。

语法: string sprintf(string format, mixed [args]...);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数用来将字符串格式化。参数 format 是转换的格式，以百分比符号 % 开始到转换字符为止。而在转换的格式间依序包括了

  1. 填空字符。0 的话表示空格填 0；空格是默认值，表示空格就放着。
  2. 对齐方式。默认值为向右对齐，负号表向左对齐。
  3. 字段宽度。为最小宽度。
  4. 精确度。指在小数点后的浮点数位数。
  5. 类型，见下表
    % 印出百分比符号，不转换。
    b | 整数转成二进位。
    c | 整数转成对应的 ASCII 字符。
    d | 整数转成十进位。
    f | 倍精确度数字转成浮点数。
    o | 整数转成八进位。
    s | 整数转成字符串。
    x | 整数转成小写十六进位。
    X | 整数转成大写十六进位。

使用范例

<?
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// 此时变量 $money 值为 "123.1";
$formatted = sprintf ("%01.2f", $money);
// 此时变量 $ formatted 值为 "123.10"
?>


函数:sql_regcase()

正则表达式函数库

sql_regcase

将字符串逐字返回大小写字符。

语法: string sql_regcase(string string);

返回值: 数组

函数种类: 资料处理

内容说明

本函数可将字符串之字符逐字返回大小写。在 PHP 使用上，本函数没有什么作用，但可能可以提供外部程序或数据库处理。

使用范例

例中的返回字符串为 [Ww][Ii][Ll][Ss][Oo][Nn]

<?php
print(sql_regcase("wilson"));
?>

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:Sqrt()

数学运算函数库

Sqrt

开平方根。

语法: float sqrt(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数将参数 arg 开平方根。


函数:srand()

数学运算函数库

srand

配置随机数种子。

语法: void srand(int seed);

返回值: 无

函数种类: 数学运算

内容说明

本函数传入参数 seed 后，配置随机数的种子。值得注意的是参数 seed 值最好也是随机出现的数字，例如利用加入时间做为变量的来源就是不错的方法，或者开发其它的硬体周边界面可取得更好的随机数。

使用范例

本例加入时间的因素，以执行时的百万分之一秒当随机数种子

<?php
srand((double)microtime()*1000000);
$randval = rand();
echo $randval;
?>

参考


函数:stat()

文件系统函数库

stat

取得文件相关信息。

语法: array stat(string filename);

返回值: 数组

函数种类: 文件存取

内容说明

本函数可蒐集文件的相关信息，并返回数组。数组的元素依序如下：

  1. 装置名称 (device)
  2. inode 值
  3. inode 文件模式
  4. 参照到该档的名称总数，含 link 档。
  5. 拥有者的 UID
  6. 拥有者的 GID
  7. 若为字符或装置设备则为装置类型 (限系统支持 st_blksize 方有效，Windows 系列返回 -1)
  8. 位组为单位的文件长度
  9. 最后存取时间
  10. 最后修改时间
  11. 最后改动时间
  12. 文件系统的区块大小 (限系统支持 st_blksize 方有效，Windows 系列返回 -1)
  13. 匹配的区块数
返回值放在快取缓冲区中，参考 clearstatcache()。


函数:str_replace()

字符串处理函数库

str_replace

字符串取代。

语法: string str_replace(string needle, string str, string haystack);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 str 代入 haystack 字符串中，将所有的 needle 置换成 str。mlevine@adtraq.com (11-Apr-1999) 指出在 PHP 3.0.7 版，本函数有些 bug，而 nadeem@bleh.org (05-Jun-1999) 补充在 PHP 3.0.8 版本函数就回复正常了。

使用范例

下例将 %body% 以 black 取代

<?php
$bodytag = str_replace("%body%", "black", "<body text=%body%>");
echo $bodytag;
?>

参考

ereg_replace()


函数:strchr()

字符串处理函数库

strchr

寻找第一个出现的字符。

语法: string strchr(string haystack, string needle);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数也就是 strstr() 函数。


函数:strcmp()

字符串处理函数库

strcmp

字符串比较。

语法: int strcmp(string str1, string str2);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来比较二字符串的大小。返回负数表示 str1 小于 str2；返回正数表示 str1 大于 str2；返回零表示二字符串相同。

参考


函数:strcspn()

字符串处理函数库

strcspn

不同字符串的长度。

语法: int strcspn(string str1, string str2);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来比较二字符串并计算出不同处的字符串长度。

参考

strspn()


函数:strftime()

日期与时间函数库

strftime

将服务器的时间本地格式化。

语法: string strftime(string format, int [timestamp]);

返回值: 字符串

函数种类: 时间日期

内容说明

返回值的字符串依配置的格式来决定。若有传入时间戳记值，则将时间戳记格式化返回；若无传入时间戳记值，则将目前服务器的时间本地格式化返回。月份或者星期名称随着本地语系配置 setlocale() 的不同而改变。

返回的字符串可以依下列的格式而定：

  • %a 星期几的缩写。
  • %A 星期几的全名。
  • %b 月份名称的缩写。
  • %B 月份名称的全名。
  • %c 本地端日期时间较佳表示字符串。
  • %d 用数字表示本月的第几天 (范围为 00 至 31)。
  • %H 用 24 小时制数字表示小时数 (范围为 00 至 23)。
  • %I 用 12 小时制数字表示小时数 (范围为 01 至 12)。
  • %j 以数字表示当年度的第几天 (范围为 001 至 366)。
  • %m 月份的数字 (范围由 1 至 12)。
  • %M 分钟。
  • %p 以 'AM' 或 'PM' 表示本地端时间。
  • %S 秒数。
  • %U 数字表示为本年度的第几周，第一个星期由第一个周日开始。
  • %W 数字表示为本年度的第几周，第一个星期由第一个周一开始。
  • %w 用数字表示本周的第几天 ( 0 为周日)。
  • %x 不含时间的日期表示法。
  • %X 不含日期的时间表示法。
  • %y 二位数字表示年份 (范围由 00 至 99)。
  • %Y 完整的年份数字表示，即四位数。
  • %Z 时区或名称缩写。
  • %% % 字符。

使用范例

<?php
setlocale ("LC_TIME", "C");
print(strftime("%A in Finnish is "));
setlocale ("LC_TIME", "fi");
print(strftime("%A, in French "));
setlocale ("LC_TIME", "fr");
print(strftime("%A and in German "));
setlocale ("LC_TIME", "de");
print(strftime("%A.\n"));
?>

参考


函数:strip_tags()

字符串处理函数库

strip_tags

去掉 HTML 及 PHP 的标记。

语法: string strip_tags(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可去掉字符串中包含的任何 HTML 及 PHP 的标记字符串。若是字符串的 HTML 及 PHP 标签原来就有错，例如少了大于的符号，则也会返回错误。而本函数和 fgetss() 有着相同的功能。


函数:StripSlashes()

字符串处理函数库

StripSlashes

去掉反斜线字符。

语法: string stripslashes(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可去掉字符串中的反斜线字符。若是连续二个反斜线，则去掉一个，留下一个。若只有一个反斜线，就直接去掉。

参考

addslashes()


函数:strlen()

字符串处理函数库

strlen

取得字符串长度。

语法: int strlen(string str);

返回值: 整数

函数种类: 资料处理

内容说明

本函数返回指定的字符串长度。


函数:strpos()

字符串处理函数库

strpos

寻找字符串中某字符最先出现处。

语法: int strpos(string haystack, string needle, int [offset]);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来寻找字符串 haystack 中的字符 needle 最先出现的位置。值得注意的是 needle 只能是一个字符，中文字等就不适合了。若找不到指定的字符，则返回 false 值。参数 offset 可省略，用来Y表示从 offset 开始找。

参考


函数:strrchr()

字符串处理函数库

strrchr

取得某字符最后出现处起的字符串。

语法: string strrchr(string haystack, string needle);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来寻找字符串 haystack 中的字符 needle 最后出现位置，并将此位置起至字符串 haystack 结束之间的字符串返回。若没有找到 needle 则返回 false。

使用范例

下例取回环境变量 PATH 之最后一个路径

<?php
$dir = substr( strrchr( $PATH, ":" ), 1 );
echo "最后的路径为: ".$dir;
?>

参考


函数:strrev()

字符串处理函数库

strrev

颠倒字符串。

语法: string strrev(string string);

返回值: 字符串

函数种类: 资料处理

内容说明

将字符串前后颠倒。

使用范例

下例的返回字符串为 "gneP nosliW"

<?
$str=strrev("Wilson Peng");
echo $str;
?>


函数:strrpos()

字符串处理函数库

strrpos

寻找字符串中某字符最后出现处。

语法: int strrpos(string haystack, char needle);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来寻找字符串 haystack 中的字符 needle 最后出现的位置。值得注意的是 needle 只能是一个字符，中文字等就不适合了。若找不到指定的字符，则返回 false 值。

参考


函数:strspn()

字符串处理函数库

strspn

找出某字符串落在另一字符串遮罩的数目。

语法: int strspn(string str1, string str2);

返回值: 整数

函数种类: 资料处理

内容说明

本函数将 str2 字符串当遮罩，可用来计算 str1 字符串中有几个字符落在 str2 遮罩中。

参考

strcspn()


函数:strstr()

字符串处理函数库

strstr

返回字符串中某字符串开始处至结束的字符串。

语法: string strstr(string haystack, string needle);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将 needle 最先出现在 haystack 处起至 haystack 结束的字符串返回。若找不到 needle 则返回 false。

参考


函数:strtok()

字符串处理函数库

strtok

切开字符串。

语法: string strtok(string arg1, string arg2);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 arg1 依字符串 arg2 的值切开成小段小段的字符串。

使用范例

本例将 I will be back 字符串依空白切开。

<?php
$string = "I will be back";
$tok = strtok($string," ");
while($tok) {
echo "单字=$tok<br>";
$tok = strtok(" ");
}
?>

参考


函数:strtolower()

字符串处理函数库

strtolower

字符串全转为小写。

语法: string strtolower(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 str 全部变小写字符串。

参考


函数:strtoupper()

字符串处理函数库

strtoupper

字符串全转为大写。

语法: string strtoupper(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 str 全部变大写字符串。

参考


函数:strtr()

字符串处理函数库

strtr

转换某些字符。

语法: string strtr(string str, string from, string to);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 str 中和 from 有关的字符一一转成 to 的字符。

参考

ereg_replace()


函数:strval()

变量处理函数库

strval

将变量转成字符串类型。

语法: string strval(mixed var);

返回值: 字符串

函数种类: PHP 系统功能

内容说明

本函数可将数组及类之外的变量类型转换成字符串类型。

参考


函数:substr()

字符串处理函数库

substr

取部份字符串。

语法: string substr(string string, int start, int [length]);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将字符串 string 的第 start 位起的字符串取出 length 个字符。若 start 为负数，则从字符串尾端算起。若可省略的参数 length 存在，但为负数，则表示取到倒数第 length 个字符。

使用范例

<?
echo substr("abcdef", 1, 3); // 返回 "bcd"
echo substr("abcdef", -2); // 返回 "ef"
echo substr("abcdef", -3, 1); // 返回 "d"
echo substr("abcdef", 1, -1); // 返回 "bcde"
?>

参考


函数:sybase_affected_rows()

Sybase 数据库函数库

sybase_affected_rows

取得最后 query 影响的列数。

语法: int sybase_affected_rows(int [link_identifier]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来取得最后一次对数据库下 query 指令所影响的列数，会影响的为 INSERT、UPDATE 或 DELETE 等指令，而 SELECT 不会影响。参数 link_identifier 可省略，为打开数据库的连接代号。返回值即为列数。


函数:sybase_close()

Sybase 数据库函数库

sybase_close

关闭与数据库的连接。

语法: boolean sybase_close(int link_identifier);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来关闭与 Sybase 数据库的连接，能关闭的为使用 sybase_connect() 函数打开的数据库，若使用 sybase_pconnect() 打开的数据库则不能以本函数关闭。参数 link_identifier 可省略，为打开数据库的连接代号。关闭成功则返回 true 值。

参考


函数:sybase_connect()

Sybase 数据库函数库

sybase_connect

连上数据库。

语法: int sybase_connect(string [servername], string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数用来打开与 Sybase 数据库的连接。参数 servername 为欲连上的数据库服务器名称。参数 username 及 password 可省略，分别为连接使用的帐号及密码。使用本函数需注意早点关闭数据库，以减少系统的负担。连接成功则返回数据库的连接代号，失败返回 false 值。

参考


函数:sybase_data_seek()

Sybase 数据库函数库

sybase_data_seek

移动列指针。

语法: boolean sybase_data_seek(int result_identifier, int row_number);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数用来移动 Sybase 资料表中的列指针到指定的列上，可供 sybase_fetch_row() 等函数使用。参数 result_identifier 为查询的代号值。参数 row_number 则为欲移往的列数。若失败则返回 false 值。

参考


函数:sybase_fetch_array()

Sybase 数据库函数库

sybase_fetch_array

返回数组资料。

语法: array sybase_fetch_array(int result);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到数组变量中。若 result 没有资料，则返回 false 值。而本函数可以说是 sybase_fetch_row() 的加强函数，除可以将返回列及数字索引放入数组之外，还可以将文字索引放入数组中。

使用范例

这是 joey@samaritan.com (22-Feb-1999) 所提出的例子

<?php
$q = sybase_query("SELECT COUNT(DISTINCT OPPORTUNITY_ID) FROM M_OPP_INTERESTS WHERE INTEREST_ID = $i_id", $db);
while ($op_by_int = sybase_fetch_array($q)) {
while (list($k, $v) = each($op_by_int)) {
echo "\$op[$k] => $v\n";
}
?>

返回资料如下
$op[0] => 2164
$op[computed] => 2164


函数:sybase_fetch_field()

Sybase 数据库函数库

sybase_fetch_field

取得字段信息。

语法: object sybase_fetch_field(int result, int field_offset);

返回值: 类

函数种类: 数学运算

内容说明

本函数返回的类资料为 result 的字段 (Column) 信息。返回类的属性如下：

  • name - 字段名称
  • column_source -字段所在表格的资料表名称
  • max_length - 字段的最大长度
  • numeric - 若为 1 表示本字段为数字类型 (numeric)

参考

sybase_field_seek()


函数:sybase_fetch_object()

Sybase 数据库函数库

sybase_fetch_object

返回类资料。

语法: object sybase_fetch_object(int result);

返回值: 类

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 拆到类变量中。使用方法和 sybase_fetch_array() 几乎相同，不同的地方在于本函数返回资料是类而不是数组。若 result 没有资料，则返回 false 值。另外值得注意的地方是，取回的类资料的索引只能是文字而不能用数字，这是因为类的特性。类资料的特性中所有的属性 (property) 名称都不能是数字，因此只好乖乖使用文字字符串当索引了。关于速度方面，本函数的处理速度几乎和 sybase_fetch_array() 及 sybase_fetch_row() 二函数差不多，要用哪个函数还是看使用的需求决定。

参考


函数:sybase_fetch_row()

Sybase 数据库函数库

sybase_fetch_row

返回单列的各字段。

语法: array sybase_fetch_row(int result);

返回值: 数组

函数种类: 数据库功能

内容说明

本函数用来将查询结果 result 之单列拆到数组变量中。数组的索引是数字索引，第一个的索引值是 0。若 result 没有资料，则返回 false 值。

参考


函数:sybase_field_seek()

Sybase 数据库函数库

sybase_field_seek

配置指针到返回值的某字段。

语法: int sybase_field_seek(int result, int field_offset);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数配置目前的指针到返回值的特定字段中。参数 result 为返回值代码。参数 field_offset 则为指定的字段序数。

参考

sybase_fetch_field()


函数:sybase_free_result()

Sybase 数据库函数库

sybase_free_result

释放返回占用内存。

语法: int sybase_free_result(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以释放目前 Sybase 数据库 query 返回所占用的内存。一般只有在非常担心在内存的使用上可能会不足的情形下才会用本函数。PHP 程序会在结束时自动释放。


函数:sybase_num_fields()

Sybase 数据库函数库

sybase_num_fields

取得返回字段的数目。

语法: int sybase_num_fields(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回字段的数目。参数 result 为返回值代码。

参考


函数:sybase_num_rows()

Sybase 数据库函数库

sybase_num_rows

取得返回列的数目。

语法: int sybase_num_rows(int result);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数可以得到返回列的数目。参数 result 为返回值代码。

参考


函数:sybase_pconnect()

Sybase 数据库函数库

sybase_pconnect

打开服务器持续连接。

语法: int sybase_pconnect(string [servername], string [username], string [password]);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数和 sybase_connect() 雷同。不同的地方在于使用本函数打开数据库时，程序会先寻找是否曾经执行过本函数，若执行过则返回先前执行的 ID。另一个不同的地方是本函数无法使用 sybase_close() 关闭数据库。参数 servername 为欲连上的数据库服务器名称。参数 username 及 password 可省略，分别为连接使用的帐号及密码。


函数:sybase_query()

Sybase 数据库函数库

sybase_query

送出一个 query 字符串。

语法: boolean sybase_query(string query, int plink_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数送出 query 字符串供 Sybase 做相关的处理或者执行。若没有指定 link_identifier 参数，则程序会自动寻找最近打开的 ID。成功则返回 true 值。


函数:sybase_result()

Sybase 数据库函数库

sybase_result

取得查询 (query) 的结果。

语法: int sybase_result(int result, int row, mixed field);

返回值: 整数

函数种类: 数据库功能

内容说明

本函数取得一格 query 的结果。参数 field 可以是字段名称、顺序或者是 fieldname.tablename 的格式。在返回资料量少时，可以使用本函数来处理。当数据库大时，本函数的效率就有待考量了，这时可以使用较有效率的 sybase_fetch_row()、sybase_fetch_array() 或 sybase_fetch_object() 等函数。


函数:sybase_select_db()

Sybase 数据库函数库

sybase_select_db

选择一个数据库。

语法: boolean sybase_select_db(string database_name, int [link_identifier]);

返回值: 布尔值

函数种类: 数据库功能

内容说明

本函数选择 Sybase 中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true，失败则返回 false。


函数:symlink()

文件系统函数库

symlink

建立符号链接 (symbolic link)。

语法: int symlink(string target, string link);

返回值: 整数

函数种类: 文件存取

内容说明

本函数可用来建立符号链接。从参数 target 链接到 link 处。建立硬式链接可用 link() 函数。

参考


函数:syslog()

网络函数库

syslog

纪录至系统纪录。

语法: int syslog(int priority, string message);

返回值: 整数

函数种类: 操作系统与环境

内容说明

本函数将 message 字符串写到系统纪录中，参数 priority 的值可能为 LOG_EMERG、LOG_ALERT、LOG_CRIT、LOG_ERR、LOG_WARNING、LOG_NOTICE、LOG_INFO、LOG_DEBUG。本函数呼叫 UNIX 操作系统的 syslog() 函数，在 Windows NT 上，使用事件检视器模拟出本功能。

参考


函数:system()

程序执行功能函数库

system

执行外部程序并显示输出资料。

语法: string system(string command, int [return_var]);

返回值: 字符串

函数种类: 操作系统与环境

内容说明

本函数就像是 C 语中的函数 system()，用来执行指令，并输出结果。若是 return_var 参数存在，则执行 command 之后的状态会填入 return_var 中。同样值得注意的是若需要处理用户输入的资料，而又要防止用户耍花招破解系统，则可以使用 EscapeShellCmd()。若 PHP 以模块式的执行，本函数会在每一行输出后自动更新 Web 服务器的输出缓冲暂存区。若需要完整的返回字符串，且不想经过不必要的其它中间的输出界面，可以使用 PassThru()。

参考


函数:Tan()

数学运算函数库

Tan

正切计算。

语法: float tan(float arg);

返回值: 浮点数

函数种类: 数学运算

内容说明

本函数计算参数 arg 的正切值 (tangent)。

参考


函数:tempnam()

文件系统函数库

tempnam

建立只一的临时档。

语法: string tempnam(string dir, string prefix);

返回值: 字符串

函数种类: 文件存取

内容说明

本函数可建立一个临时档，档名不会与同目录中的文件重覆。返回字符串就是建立的临时档名。若发生错误则返回空字符串。

使用范例

<?
$tmpfname = tempnam( "/tmp", "HAHA" );
?>


函数:time()

日期与时间函数库

time

取得目前时间的 UNIX 时间戳记。

语法: int time(void);

返回值: 整数

函数种类: 时间日期

内容说明

返回目前时间的戳记值。

参考

date()


函数:touch()

文件系统函数库

touch

配置最后修改时间。

语法: int touch(string filename, int [time]);

返回值: 整数

函数种类: 文件存取

内容说明

本函数可用来配置最后修改时间。若有指定参数 time，则依指定的时间；若无指定时间，则为服务器的时间。和 UNIX 的同名指令一样，若文件不存在，则会建立 filename 文件。成功则返回 true 值，其它失败时则返回 false。


函数:trim()

字符串处理函数库

trim

截去字符串首尾的空格。

语法: string trim(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数返回字符串 string 首尾的空白字符去除后的字符串。

参考


函数:uasort()

数组处理函数库

uasort

将数组依用户自定的函数排序。

语法: void uasort(array array, function cmp_function);

返回值: 无

函数种类: 资料处理

内容说明

本函数将数组依用户自定的方式重排，当然元素的索引和值仍然保持对应的关系。当您觉得需要自行设计排序的方式时，可以先自订处理函数，再使用本函数将数组值排序。

参考


函数:ucfirst()

字符串处理函数库

ucfirst

将字符串第一个字符改大写。

语法: string ucfirst(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数返回字符串 str 第一个字的字首字母改成大写。

参考


函数:ucwords()

字符串处理函数库

ucwords

将字符串每个字第一个字母改大写。

语法: string ucwords(string str);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数返回字符串 str 每个字的字首字母全都改成大写。

参考


函数:uksort()

数组处理函数库

uksort

将数组的索引依用户自定的函数排序。

语法: void uksort(array array, function cmp_function);

返回值: 无

函数种类: 资料处理

内容说明

本函数将数组的索引依用户自定的方式重排，cmp_function 即用户自行开发的函数。

使用范例

<?
function mycompare($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");
uksort($a, mycompare);
while(list($key, $value) = each($a)) {
echo "$key: $value\n";
}
?>

上面的程序返回资料为
20: twenty
10: ten
4: four
3: three

参考


函数:umask()

文件系统函数库

umask

改变目前的文件属性遮罩 umask。

语法: int umask(int [mask]);

返回值: 整数

函数种类: 文件存取

内容说明

本函数用来配置 PHP 的 umask 值。此值是 mask 与 0777 运算的值，返回旧的 umask 值。当参数 mask 不存在时，本函数将返回目前的 umask 值。


函数:uniqid()

杂项函数库

uniqid

产生只一的值。

语法: string uniqid(string prefix);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数会依据当时的毫秒以及指定的前置字符串产生一个独一无二的字符串。参数 prefix 为前置的字符串，最多可达 114 字符。

使用范例

本例产生 32 个字符的独一无二字符串。

<?php
$token = md5(uniqid(rand()));
echo $token;
?>


函数:unlink()

文件系统函数库

unlink

删除文件。

语法: int unlink(string filename);

返回值: 整数

函数种类: 文件存取

内容说明

本函数删除文件 filename，用法像 UNIX 中 C 语言呼叫的同名函数 unlink()。当发生错误则返回 0 或 false。

参考

rmdir()


函数:unpack()

杂项函数库

unpack

解压缩位字符串资料。

语法: string pack(string format, mixed [args]...);

返回值: 数组

函数种类: 资料处理

内容说明

本函数用来将位的字符串的资料解压缩。本函数和 Perl 的同名函数功能用法完全相同。参数 format 为压缩的格式，参见 pack 的格式表。

参考

pack()


函数:unserialize()

杂项函数库

unserialize

取出系统资料。

语法: mixed unserialize(string str);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

本函数可取出系统资料。储存的资料以 byte-stream 方式存放。返回值为混合类型，包括整数、倍精确浮点数字符串、数组以及类的属性 (类的方法无法储存)。

使用范例

<?php
$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 设为空值
$session_data = array();
} else {
// 取出 $tmp[0] 值
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// 出现错误则将 $session_data 清除
$session_data = array();
}
}
?>

参考

serialize()


函数:unset()

变量处理函数库

unset

删除变量。

语法: int unset(mixed var);

返回值: 整数

函数种类: PHP 系统功能

内容说明

本函数将变量删除，成功则返回 true 值。

参考

isset() empty()

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:urldecode()

URL 处理函数库

urldecode

还原 URL 编码字符串。

语法: string urldecode(string str);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将 URL 编码后字符串还原成未编码的样子。编码使用 %## 的格式。

参考

urlencode()


函数:urlencode()

URL 处理函数库

urlencode

将字符串以 URL 编码。

语法: string urlencode(string str);

返回值: 字符串

函数种类: 编码处理

内容说明

本函数将字符串以 URL 编码。例如空格就会变成加号。Homepage 中 form 资料传送就是用 urlencode 编码后再送出。

使用范例

本例将中文字符串以 URL 编码过，转给别的 CGI 使用

<?php
$EncodeStr=urlencode($ChineseName);
echo "<a href=/cgi/personal.cgi?n=$EncodeStr>个人信息</a>";
?>

参考

urldecode()


函数:usleep()

杂项函数库

usleep

暂停执行。

语法: void usleep(int micro_seconds);

返回值: 无

函数种类: PHP 系统功能

内容说明

本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的毫秒数。

参考

sleep()

整理: sadly (www.phpx.com)

[ 上一页 ]


函数:usort()

数组处理函数库

usort

将数组的值依用户自定的函数排序。

语法: void usort(array array, function cmp_function);

返回值: 无

函数种类: 资料处理

内容说明

本函数将数组的值依用户自定的方式重排。若程序中需要使用特殊的排序方式，则可以使用这个函数。

使用范例

<?
function cmp($a,$b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a = array(3,2,5,6,1);
usort($a, cmp);
while(list($key,$value) = each($a)) {
echo "$key: $value\n";
}
?>

此例的返回值为
0: 6
1: 5
2: 3
3: 2
4: 1

参考


函数:utf8_decode()

XML 解析函数库

utf8_decode

将 UTF-8 码转成 ISO-8859-1 码。

语法: string utf8_decode(string data);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数用来将 UTF-8 内码转成 ISO-8859-1 内码。参数 data 为待转换的字符串。

参考

utf8_encode()


函数:utf8_encode()

XML 解析函数库

utf8_encode

将 ISO-8859-1 码转成 UTF-8 码。

语法: string utf8_decode(string data);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数用来将 ISO-8859-1 内码转成 UTF-8 内码。参数 data 为待转换的字符串。

参考

utf8_decode()


函数:virtual()

apache服务器专用函数库

virtual

完成apache服务器的子请求 (sub-request)。

语法: int virtual(string filename);

返回值: 整数

函数种类: PHP 系统功能

内容说明

这个函数就等于使用服务器端解析 (SSI) 的 shtml 功能。值得注意的是 virtual 所引入的程序必须要产生有效的 HTTP 档头，最少要加入 Content-type 档头、或者是 Location 档头、或者 Status 档头。并且根据 HTTP 协议，在档头结束后尚必须空一行。在 PHP 的程序实作时，可使用 include() 或 require() 这二个函数。


函数:vm_addalias()

Vmailmgr 邮件处理函数库

vm_addalias

加入新别名。

语法: boolean vm_addalias(string vdomain, string basepwd, string username, string alias);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来加入新的别名。参数 username 为用户的帐号。参数 alias 为欲新增的别名。


函数:vm_adduser()

Vmailmgr 邮件处理函数库

vm_adduser

加入新用户。

语法: boolean vm_adduser(string vdomain, string basepwd, string newusername, string newuserpassword);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来加入新的用户。参数 newusername 及 newuserpassword 分别为用户的帐号及密码。


函数:vm_delalias()

Vmailmgr 邮件处理函数库

vm_delalias

删除别名。

语法: boolean vm_delalias(string vdomain, string basepwd, string alias);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来加入新的别名。参数 alias 为欲删除的别名。


函数:vm_deluser()

Vmailmgr 邮件处理函数库

vm_deluser

删除用户。

语法: boolean vm_deluser(string vdomain, string username);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来删除指定用户。参数 username 为欲删除的用户帐号。


函数:vm_passwd()

Vmailmgr 邮件处理函数库

vm_passwd

改变用户密码。

语法: boolean vm_passwd(string vdomain, string username, string password, string newpassword);

返回值: 布尔值

函数种类: 网络系统

内容说明

本函数用来改变指定用户密码。参数 username 为用户的帐号。参数 password 为旧的密码。参数 newpassword 为新的密码。


函数:wddx_add_vars()

WDDX 函数库

wddx_add_vars

将 WDDX 封包连续化。

语法: boolean wddx_add_vars(int packet_id, ...);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数将多个 WDDX 封包 (packet) 连续化成一个。若有错误则返回 false。


函数:wddx_deserialize()

WDDX 函数库

wddx_deserialize

将 WDDX 封包解连续化。

语法: mixed wddx_deserialize(string packet);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

本函数将 WDDX 封包 (packet) 解连续化成分散资料。参数 packet 为封包字符串。返回值可能为字符串、数字、或者数组等。


函数:wddx_packet_end()

WDDX 函数库

wddx_packet_end

结束的 WDDX 封包。

语法: string wddx_packet_end(int packet_id);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数结束 WDDX 封包 (packet)，并返回封包的资料字符串。参数 packet_id 为封包的代码。


函数:wddx_packet_start()

WDDX 函数库

wddx_packet_start

开始新的 WDDX 封包。

语法: int wddx_packet_start(string [comment]);

返回值: 整数

函数种类: 资料处理

内容说明

本函数开始新的 WDDX 封包 (packet)。


函数:wddx_serialize_value()

WDDX 函数库

wddx_serialize_value

将单一值连续化。

语法: string wddx_serialize_value(mixed var, string [comment]);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将单一数值连续化，并将它送到 WDDX 封包中。参数 var 为值的内容。参数 comment 可省略，为在封包表头的字符串。


函数:wddx_serialize_vars()

WDDX 函数库

wddx_serialize_vars

将多值连续化。

语法: string wddx_serialize_vars(string var_name | array var_names [, ... ] );

返回值: 字符串

函数种类: 资料处理

内容说明

本函数将多数值连续化，并将它送到 WDDX 封包中。参数依次为值的内容，可以是字符串或是数组。

使用范例

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";
$clvars = array("c", "d");
print wddx_serialize_vars("a", "b", $clvars);
?>

返回浏览器的资料为

<wddxPacket version='0.9'><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>


函数:xml_error_string()

XML 解析函数库

xml_error_string

取得 XML 错误字符串。

语法: string xml_error_string(int code);

返回值: 字符串

函数种类: 资料处理

内容说明

本函数可取得 XML 在处理时的错误代码。参数 code 为解析错误代码。若无错误返回值为代码的文字描述字符串。


函数:xml_get_current_byte_index()

XML 解析函数库

xml_get_current_byte_index

取得目前解析为第几个位组。

语法: int xml_get_current_column_number(int parser);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来取得目前 XML 解析所正在的位组 (byte) 为第几个位组。参数 parser 为解析代码。若 parser 有错则返回 false 值，若无错误则返回位序号。


函数:xml_get_current_column_number()

XML 解析函数库

xml_get_current_column_number

获知目前解析的第几字段。

语法: int xml_get_current_column_number(int parser);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来取得目前 XML 解析所正在处理行的第几个字段。参数 parser 为解析代码。若 parser 有错则返回 false 值，若无错误则返回字段序数。


函数:xml_get_current_line_number()

XML 解析函数库

xml_get_current_line_number

取得目前解析的行号。

语法: int xml_get_current_line_number(int parser);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来取得目前 XML 解析所正在处理的行号。参数 parser 为解析代码。若 parser 有错则返回 false 值，若无错误则返回行号数字。


函数:xml_get_error_code()

XML 解析函数库

xml_get_error_code

取得 XML 错误码。

语法: int xml_get_error_code(int parser);

返回值: 整数

函数种类: 资料处理

内容说明

本函数可取得 XML 在处理时的错误代码。参数 parser 为解析代码。若 parser 有错则返回 false 值，否则就返回错误代码 (如 XML_ERROR_BINARY_ENTITY_REF .... 等等)。


函数:xml_parse()

XML 解析函数库

xml_parse

解析 XML 文件。

语法: boolean xml_parse(int parser, string data, int [isFinal]);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数用来解析 XML 格式的文件资料。参数 parser 为解析代码。参数 data 为解析的资料区块 (chunk)。参数 isFinal 可省略，若设为 true 则系统会自动送出最后的资料部分 (piece) 给 data 参数。若无错误则返回 true 值。


函数:xml_parser_create()

XML 解析函数库

xml_parser_create

初始 XML 解析器。

语法: int xml_parser_create(string [encoding]);

返回值: 整数

函数种类: 资料处理

内容说明

本函数用来初始化一个新的 XML 解析器。参数 encoding 可省略，为 XML 使用的字符集，默认值为 ISO-8859-1，其它尚有 US-ASCII、UTF-8 二种。成功则返回 parser 代码供其它函数使用，失败则返回 false 值。


函数:xml_parser_free()

XML 解析函数库

xml_parser_free

释放解析占用的内存。

语法: boolean xml_parser_free(int parser);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数用来释放目前 XML 解析所使用的内存。参数 parser 为解析代码。若没有错误则返回 true 值，否则返回 false 值。


函数:xml_parser_get_option()

XML 解析函数库

xml_parser_get_option

取得解析使用的选项。

语法: mixed xml_parser_get_option(int parser, int option);

返回值: 混合类型资料

函数种类: 资料处理

内容说明

本函数用来取得 XML 解析所选用的选项。参数 parser 为解析代码。参数 option 即为欲取得的选项常量名称，有 XML_OPTION_CASE_FOLDING 及 XML_OPTION_TARGET_ENCODING 二种。

参考

xml_parser_set_option()


函数:xml_parser_set_option()

XML 解析函数库

xml_parser_set_option

配置解析使用的选项。

语法: boolean xml_parser_set_option(int parser, int option, mixed value);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数用来配置 XML 解析所选用的选项。参数 parser 为解析代码。参数 option 即为欲配置的选项常量名称，见下表 (如: XML_OPTION_CASE_FOLDING)。参数 value 则为欲配置的值。若没有错误则返回 true 值，否则返回 false 值。

选项常量名称 | 类型 | 说明
XML_OPTION_CASE_FOLDING | 整数 | 配置是否允许 case-folding，默认值为允许
XML_OPTION_TARGET_ENCODING | 字符串 | 配置目地的编码类型，有 ISO-8859-1、US-ASCII 及 UTF-8 等

参考

xml_parser_get_option()


函数:xml_set_character_data_handler()

XML 解析函数库

xml_set_character_data_handler

建立字符资料标头。

语法: boolean xml_set_character_data_handler(int parser, string handler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置字符资料的标头。参数 parser 为解析代码。参数 handler 包括解析代码及资料字符串等二个元素。若无错误则返回 true 值。


函数:xml_set_default_handler()

XML 解析函数库

xml_set_default_handler

建立默认标头。

语法: boolean xml_set_default_handler(int parser, string handler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置默认的标头。参数 parser 为解析代码。参数 handler 包括解析代码及资料字符串等二个元素。若无错误则返回 true 值。


函数:xml_set_element_handler()

XML 解析函数库

xml_set_element_handler

配置元素的标头。

语法: boolean xml_set_element_handler(int parser, string startElementHandler, string endElementHandler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置元素的标头供 xml_parse() 函数使用。参数 parser 为解析代码。参数 startElementHandler 及 endElementHandler 分别为元素开始与结束的标头，其中的 startElementHandler 必须包括解析代码、名称、与属性，而 endElementHandler 参数包括了解析代码及名称二个参数。若无错误则返回 true 值。

使用范例

下列用来显示 XML 元素结构 (Element Structure)

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
global $depth;
for ($i = 0; $i < $depth[$parser]; $i++) {
print " ";
}
print "$name\n";
$depth[$parser]++;
}

function endElement($parser, $name, $attrs)
{
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_set_external_entity_ref_handler()

XML 解析函数库

xml_set_external_entity_ref_handler

配置外部实体参引的标头。

语法: boolean xml_set_external_entity_ref_handler(int parser, string handler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置外部实体参引 (external entity reference) 的标头。参数 parser 为解析代码。参数 handler 包括解析代码、打开实体名称、基底、系统识别符、与公用识别符等五个元素。若标头有错，可用 xml_get_error_code() 会返回 XML_ERROR_EXTERNAL_ENTITY_HANDLING。若无错误则返回 true 值。


函数:xml_set_notation_decl_handler()

XML 解析函数库

xml_set_notation_decl_handler

配置记法宣告的标头。

语法: boolean xml_set_notation_decl_handler(int parser, string handler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置记法宣告 (notation declaration) 的标头。参数 parser 为解析代码。参数 handler 包括解析代码、记法名称、基底、系统识别符、与公用识别符等五个元素。看起来应是类似如下的字符串

<!NOTATION name {systemId | publicId}>

更多的细节可以参考 XML 1.0 的规格书，有关 Notation 的部份。若无错误则返回 true 值。


函数:xml_set_object()

XML 解析函数库

xml_set_object

使 XML 解析器用类。

语法: void xml_set_object(int parser, object &object);

返回值: 无

函数种类: 资料处理

内容说明

本函数让解析器能使用类的方式，值得注意的是这个函数在 PHP 4.0 以上的版本才可使用。参数 parser 为 xml_parser_create() 所返回的解析代码。参数 &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_processing_instruction_handler()

XML 解析函数库

xml_set_processing_instruction_handler

建立处理指令标头。

语法: boolean xml_set_processing_instruction_handler(int parser, string handler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置处理指令 (Processing Instruction, 简称 PI) 的标头，处理指令类似下列行的格式

<?target data?>

参数 parser 为解析代码。参数 handler 包括解析代码、处理指令目标及资料字符串等三个元素。若无错误则返回 true 值。


函数:xml_set_unparsed_entity_decl_handler()

XML 解析函数库

xml_set_unparsed_entity_decl_handler

配置未解析实体宣告的标头。

语法: boolean xml_set_unparsed_entity_decl_handler(int parser, string handler);

返回值: 布尔值

函数种类: 资料处理

内容说明

本函数配置尚未经过解析的实体宣告标头。参数 parser 为解析代码。参数 handler 包括解析代码、实体名称、基底、系统识别符、公用识别符、与记法名称等六个元素。看起来应是类似如下的字符串

<!ENTITY name {publicId | systemId} NDATA notationName>

更多的细节可以参考 XML 1.0 的规格书，有关实体宣告的部份。若无错误则返回 true 值。


函数:yp_err_string()

NIS 函数库

yp_err_string

取得先前 YP 操作的错误字符串。

语法: string yp_err_string(void);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来取得最后一次 YP 操作时的错误字符串。本函数不需参数。


函数:yp_errno()

NIS 函数库

yp_errno

取得先前 YP 操作的错误码。

语法: int yp_errno(void);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得最后一次 YP 操作时的错误代码，代码值及意义见下表

代码 | 意义
1 | 函数的参数有错
2 | RPC 错误 - 不再系着 Domain
3 | 在 Domain 上无法系住服务器
4 | Domain 上找不到指定的 map
5 | Map 上找不到指定的索引键
6 | YP 内部有错
7 | 资源取得错误
8 | 指定 Map 数据库中已无资料
9 | 无法与 portmapper 通讯
10 | 无法与 ypbind 通讯
11 | 无法与 ypserv 通讯
12 | 未配置本地的 Domain
13 | YP 数据库有错
14 | YP 版本不合
15 | 暴力存取
16 | 资料忙线中


函数:yp_first()

NIS 函数库

yp_first

返回 map 上第一笔符合的资料。

语法: array yp_first(string domain, string map);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得指定 map 上第一笔返回资料的索引和其值。返回资料为数组，若失败则返回 false。

使用范例

<?php
$entry = yp_first($domain, "passwd.byname");
if(!$entry) {
echo yp_errno() . ": " . yp_err_string();
}
$key = key($entry);
echo "第一笔索引为: ".$key."\n";
echo "其值为: ".$entry[$key];
?>

参考


函数:yp_get_default_domain()

NIS 函数库

yp_get_default_domain

取得机器的 Domain。

语法: string yp_get_default_domain(void);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来寻找服务器本身所处的 Domain。执行成功则返回 Domain 字符串，失败则返回 false。本函数执行时不需要加参数。

使用范例

<?php
$domain = yp_get_default_domain();
if(!$domain) {
echo yp_errno() . ": " . yp_err_string();
}
echo "NIS 的 domain 为: " . $domain;
?>

参考


函数:yp_master()

NIS 函数库

yp_master

取得 NIS 的 Master。

语法: string yp_master(string domain, string map);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来获取目前所在 Domain 上的 Master 机器，在取得 Domain 及 map 之后使用。

参考


函数:yp_match()

NIS 函数库

yp_match

取得指定资料。

语法: string yp_match(string domain, string map, string key);

返回值: 字符串

函数种类: 网络系统

内容说明

本函数用来获取指定 Domain 中 Map 中的指定资料。参数 key 可指定用户名称等。

使用范例

下例用来取得 wilson 的信息

<?php
$entry = yp_match($domain, "passwd.byname", "wilson");
if(!$entry) {
echo yp_errno() . ": " . yp_err_string();
}
echo "取得字符串为: " . $entry;
?>

返回字符串类似下面的字符串
wilson:##wilson:12345:380:Wilson Peng:/home/wilson:/bin/bash

参考


函数:yp_next()

NIS 函数库

yp_next

指定 map 的下笔资料。

语法: array yp_next(string domain, string map, string key);

返回值: 数组

函数种类: 网络系统

内容说明

本函数用来取得 map 上指定资料的下笔返回资料的索引和其值。返回资料为数组，若失败则返回 false。

使用范例

<?php
$entry = yp_next($domain, "passwd.byname", "wilson");
if(!$entry) {
echo yp_errno() . ": " . yp_err_string();
}
$key = key($entry);
echo "Wilson 后的索引为: ".$key."\n";
echo "其值为: " . $entry[$key];
?>

参考


函数:yp_order()

NIS 函数库

yp_order

返回 map 的序数。

语法: int yp_order(string domain, string map);

返回值: 整数

函数种类: 网络系统

内容说明

本函数用来取得 map 的序数，在取得 Domain 及 map 之后使用。返回值为 map 序数，若失败则返回 false。

使用范例

<?php
$number = yp_order($domain, $mapname);
if(!$number) {
echo yp_errno() . ": " . yp_err_string();
}
echo "Map 序数为: " . $order;
?>

参考


序

扮演 Webmaster 的角色已经六年了，从早期的 CERN 及 NCSA 服务器，后来的 Netscape Enterprise 服务器，到现在一统天下的 Apache，面对开发 CGI 的程序时，总是有事倍功半的感慨。印象最深刻的就是在 WindowsNT IIS 上，使用 Delphi，调用 ISAPI 及 OLE 来连接 SQL Server，那真是段痛苦的日子。

而网络早就不知改朝换代了几次，单浏览器就从 Moasic/Lynx 的草创，到 Netscape 的独大，最后由 Internet Explorer 成为新霸权，在新的廿一世纪开始之后，Linux 及 Open Source (包括 Mozilla) 也将撼动微软的帝国。面对每天都在改变的网络，Webmaster 苦哈哈的写程序，再嵌入视觉画面，最后再编译程序，配置系统环境，结果还很不容易调试。相信只一的救赎，不是只有 ODBC 功能的 ASP，而是属于开放团体的 PHP。

面对百倍速的 Internet，PHP 应是网站工作者所需具备的基本能力，否则将很快地被 Internet 洪流刷下来。无论要架个人的网站、电子商务的网站、甚至大型的入口网站或小型的群组网站，PHP 成功的例子实在太多了。国内的一些系统软件公司也开始支持 PHP，如 DBMaker 就是最好的例子。

在 PHP3 正式问世之后，兴起了扮演这个解放所有 Webmaster 程序的传教士的念头，同时也兴起自由文件的想法。知识应可以用不同的方式呈现，无论是虚拟的网页、传统的书本、或新一代随身电子书。很高兴能遇到有相同理念的迪茂国际出版社李总，并大力支持这一个想法，于是有了这么一本书。同时也获得 BIGLOBE 旧同事支持，于是有了这么一个网站 http://php.wilson.gs。

严格而言，本书实在不太适合刚入门的网络工作者，尤其是不了解 HTTP 及 HTML 的话，可能会比较吃力。不过天下无难事，相信只要全力投入，在数个月间，就可以从网络新兵变成专业老鸟。对于已有其它 CGI 经验 (如 Prel、C、Python、Java 等) 的资深网络工作者，本书应能让您以最短的时间，操作这最强的利器，让您的生产力大增。甚至您若原是微软的爱用者，本书可以让您从 ASP 跃升到全功能的 PHP。

PHP BIBLE 前后大约写了十个月，几乎每天都敲到凌晨三点。常常想，Open Source 及开放团体真是除了狂热份子，不是正常人可以干的，连 PHP 原创者 Rasmus Lerdorf 都要在结婚前，求网友寄明信片给他未婚妻，说明不是只有 Rasmus Lerdorf 自己的狂热。

当然该感谢父母，每天睡觉都要忍受我用英文打字机练出来的键盘声到三点；同其它的电脑狂一样，和交往多年的女友相处的时间，其实没有我和电脑相处时间的十分之一，唉，真是抱歉。

彭武兴

整理: sadly (www.phpx.com)

[ 下一页 ]