<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Lee's 程序人生</title><subtitle type="text">HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库</subtitle><id>http://feed.cnblogs.com/blog/u/28218/rss</id><updated>2012-02-09T06:50:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/28218/rss"/><entry><id>http://www.cnblogs.com/analyzer/archive/2012/02/09/2343952.html</id><title type="text">PostgreSQL与MySQL比较</title><summary type="text">特性MySQLPostgreSQL实例通过执行 MySQL 命令（mysqld）启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。通过执行 Postmaster 进程（pg_ctl）启动实例。一个实例可以管理一个或多个数据库，这些数据库组成一个集群。集群是磁盘上的一个区域，这个区域在安装时初始化并由一个目录组成，所有数据都存储在这个目录中。使用 initdb 创建第一个数据库。一台机器上可以启动多个实例。数据库数据库是命名的对象集合，是与实例中的其他数据库分离的实体。一个 MySQL 实例中的所有数据库共享</summary><published>2012-02-09T06:50:00Z</published><updated>2012-02-09T06:50:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/archive/2012/02/09/2343952.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/archive/2012/02/09/2343952.html"/><content type="html">&lt;table cellspacing="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; table-layout: auto; width: 1095px; color: #000000; font-family: song, Verdana; font-size: 14px; line-height: 22px; background-color: #f0f3fa; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;特性&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;MySQL&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;PostgreSQL&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;实例&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;通过执行 MySQL 命令（mysqld）启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;br style="word-wrap: break-word; " /&gt;通过执行 Postmaster 进程（pg_ctl）启动实例。一个实例可以管理一个或多个数据库，这些数据库组成一个集群。集群是磁盘上的一个区域，这个区域在安装时初始化并由一个目录组成，所有数据都存储在这个目录中。使用 initdb 创建第一个数据库。一台机器上可以启动多个实例。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;数据库&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;数据库是命名的对象集合，是与实例中的其他数据库分离的实体。一个 MySQL 实例中的所有数据库共享同一个系统编目。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;数据库是命名的对象集合，每个数据库是与其他数据库分离的实体。每个数据库有自己的系统编目，但是所有数据库共享 pg_databases。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;数据缓冲区&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;通过&amp;nbsp;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;innodb_buffer_pool_size&lt;/strong&gt;&amp;nbsp;配置参数设置数据缓冲区。这个参数是内存缓冲区的字节数，InnoDB 使用这个缓冲区来缓存表的数据和索引。在专用的数据库服务器上，这个参数最高可以设置为机器物理内存量的 80%。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;Shared_buffers&lt;/strong&gt;&amp;nbsp;缓存。在默认情况下分配 64 个缓冲区。默认的块大小是 8K。可以通过设置 postgresql.conf 文件中的 shared_buffers 参数来更新缓冲区缓存。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;数据库连接&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;客户机使用 CONNECT 或 USE 语句连接数据库，这时要指定数据库名，还可以指定用户 id 和密码。使用角色管理数据库中的用户和用户组。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;客户机使用 connect 语句连接数据库，这时要指定数据库名，还可以指定用户 id 和密码。使用角色管理数据库中的用户和用户组。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;身份验证&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;MySQL 在数据库级管理身份验证。 基本只支持密码认证。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;PostgreSQL 支持丰富的认证方法：信任认证、口令认证、Kerberos 认证、基于 Ident 的认证、LDAP 认证、PAM 认证&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;加密&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;可以在表级指定密码来对数据进行加密。还可以使用 AES_ENCRYPT 和 AES_DECRYPT 函数对列数据进行加密和解密。可以通过 SSL 连接实现网络加密。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;可以使用 pgcrypto 库中的函数对列进行加密/解密。可以通过 SSL 连接实现网络加密。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;审计&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;可以对 querylog 执行 grep。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;可以在表上使用 PL/pgSQL 触发器来进行审计。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;查询解释&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;使用 EXPLAIN 命令查看查询的解释计划。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;使用 EXPLAIN 命令查看查询的解释计划。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;备份、恢复和日志&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;InnoDB 使用写前（write-ahead）日志记录。支持在线和离线完全备份以及崩溃和事务恢复。需要第三方软件才能支持热备份。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;在数据目录的一个子目录中维护写前日志。支持在线和离线完全备份以及崩溃、时间点和事务恢复。 可以支持热备份。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;JDBC 驱动程序&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;可以从&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0606khatri/index.html#Resources" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;参考资料&lt;/a&gt;&amp;nbsp;下载 JDBC 驱动程序。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;可以从&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0606khatri/index.html#Resources" target="_blank" style="word-wrap: break-word; color: #336699; "&gt;参考资料&lt;/a&gt;&amp;nbsp;下载 JDBC 驱动程序。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;表类型&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;取决于存储引擎。例如，NDB 存储引擎支持分区表，内存引擎支持内存表。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持临时表、常规表以及范围和列表类型的分区表。不支持哈希分区表。 由于PostgreSQL的表分区是通过表继承和规则系统完成了，所以可以实现更复杂的分区方式。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;索引类型&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;取决于存储引擎。MyISAM：BTREE，InnoDB：BTREE。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持 B-树、哈希、R-树和 Gist 索引。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;约束&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持主键、外键、惟一和非空约束。对检查约束进行解析，但是不强制实施。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持主键、外键、惟一、非空和检查约束。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;存储过程和用户定义函数&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和 C++ 编写。用户定义函数可以用 SQL、C 和 C++ 编写。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;没有单独的存储过程，都是通过函数实现的。用户定义函数可以用 PL/pgSQL（专用的过程语言）、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;触发器&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持行前触发器、行后触发器和语句触发器，触发器语句用过程语言复合语句编写。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持行前触发器、行后触发器和语句触发器，触发器过程用 C 编写。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;系统配置文件&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;my.conf&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;Postgresql.conf&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;数据库配置&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;my.conf&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;Postgresql.conf&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;客户机连接文件&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;my.conf&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;pg_hba.conf&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;XML 支持&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;有限的 XML 支持。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;有限的 XML 支持。&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;数据访问和管理服务器&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;OPTIMIZE TABLE&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 回收未使用的空间并消除数据文件的碎片&lt;br style="word-wrap: break-word; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;myisamchk -analyze&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 更新查询优化器所使用的统计数据（MyISAM 存储引擎）&lt;br style="word-wrap: break-word; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;mysql&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 命令行工具&lt;br style="word-wrap: break-word; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;MySQL Administrator&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 客户机 GUI 工具&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;Vacuum&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 回收未使用的空间&lt;br style="word-wrap: break-word; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;Analyze&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 更新查询优化器所使用的统计数据&lt;br style="word-wrap: break-word; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;psql&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 命令行工具&lt;br style="word-wrap: break-word; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;pgAdmin&lt;/strong&gt;&amp;nbsp;&amp;#8212;&amp;#8212; 客户机 GUI 工具&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;并发控制&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持表级和行级锁。InnoDB 存储引擎支持 READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和 SERIALIZABLE。使用 SET TRANSACTION ISOLATION LEVEL 语句在事务级设置隔离级别。&lt;/td&gt;&lt;td style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;支持表级和行级锁。支持的 ANSI 隔离级别是 Read Committed（默认 &amp;#8212;&amp;#8212; 能看到查询启动时数据库的快照）和 Serialization（与 Repeatable Read 相似 &amp;#8212;&amp;#8212; 只能看到在事务启动之前提交的结果）。使用 SET TRANSACTION 语句在事务级设置隔离级别。使用 SET SESSION 在会话级进行设置。&amp;nbsp;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;MySQL相对于PostgreSQL的劣势：&lt;br style="word-wrap: break-word; " /&gt;&lt;/strong&gt;&lt;table cellspacing="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; table-layout: auto; width: 1095px; color: #000000; font-family: song, Verdana; font-size: 14px; line-height: 22px; background-color: #f0f3fa; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;MySQL&lt;/strong&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; "&gt;PostgreSQL&lt;/strong&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;最重要的引擎InnoDB很早就由Oracle公司控制。目前整个MySQL数据库都由Oracle控制。&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;BSD协议，没有被大公司垄断。&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;对复杂查询的处理较弱，查询优化器不够成熟&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;很强大的查询优化器，支持很复杂的查询处理。&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;都支持&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;性能优化工具与度量信息不足&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;提供了一些性能视图，可以方便的看到发生在一个表和索引上的select、delete、update、insert统计信息，也可以看到cache命中率。网上有一个开源的pgstatspack工具。&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;InnoDB的表和索引都是按相同的方式存储。也就是说表都是索引组织表。这一般要求主键不能太长而且插入时的主键最好是按顺序递增，否则对性能有很大影响。&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;不存在这个问题。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;大部分查询只能使用表上的单一索引;在某些情况下，会存在使用多个索引的查询,但是查询优化器通常会低估其成本,它们常常比表扫描还要慢。&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;不存在这个问题&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;表增加列，基本上是重建表和索引，会花很长时间。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;表增加列，只是在数据字典中增加表定义，不会重建表&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;存储过程与触发器的功能有限。可用来编写存储过程、触发器、计划事件以及存储函数的语言功能较弱&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;除支持pl/pgsql写存储过程，还支持perl、python、Tcl类型的存储过程：pl/perl，pl/python，pl/tcl。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;也支持用C语言写存储过程。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;不支持Sequence。&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;支持&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;不支持函数索引，只能在创建基于具体列的索引。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;不支持物化视图。&lt;/p&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;支持函数索引，同时还支持部分数据索引，通过规则系统可以实现物化视图的功能。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;执行计划并不是全局共享的, 仅仅在连接内部是共享的。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;执行计划共享&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;MySQL支持的SQL语法(ANSI SQL标准)的很小一部分。不支持递归查询、通用表表达式（Oracle的with 语句）或者窗口函数（分析函数）。&lt;/p&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;br style="word-wrap: break-word; " /&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;都 支持&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellspacing="0" style="word-wrap: break-word; empty-cells: show; border-collapse: collapse; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #e3edf5; border-right-color: #e3edf5; border-bottom-color: #e3edf5; border-left-color: #e3edf5; table-layout: auto; width: 1095px; color: #000000; font-family: song, Verdana; font-size: 14px; line-height: 22px; background-color: #f0f3fa; "&gt;&lt;tbody style="word-wrap: break-word; "&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;不支持用户自定义类型或域(domain)&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;支持。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;对于时间、日期、间隔等时间类型没有秒以下级别的存储类型&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;可以精确到秒以下。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;身份验证功能是完全内置的，不支持操作系统认证、PAM认证，不支持LDAP以及其它类似的外部身份验证功能。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;支持OS认证、Kerberos 认证 、Ident 的认证、LDAP 认证、PAM 认证&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;不支持database link。有一种叫做Federated的存储引擎可以作为一个中转将查询语句传递到远程服务器的一个表上,不过,它功能很粗糙并且漏洞很多&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;有dblink，同时还有一个dbi-link的东西，可以连接到oracle和mysql上。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;Mysql Cluster可能与你的想象有较大差异。开源的cluster软件较少。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;复制(Replication)功能是异步的,并且有很大的局限性.例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master.&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;有丰富的开源cluster软件支持。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;explain看执行计划的结果简单。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;explain返回丰富的信息。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="word-wrap: break-word; "&gt;&lt;td width="355" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;类似于ALTER TABLE或CREATE TABLE一类的操作都是非事务性的.它们会提交未提交的事务，并且不能回滚也不能做灾难恢复&lt;/p&gt;&lt;/td&gt;&lt;td width="350" style="word-wrap: break-word; line-height: 1.6em; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #000000; border-right-color: #000000; border-bottom-color: #000000; border-left-color: #000000; overflow-x: hidden; overflow-y: hidden; "&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; text-indent: 2em; text-align: left; "&gt;DDL也是有事务的。&lt;br style="word-wrap: break-word; " /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;PostgreSQL主要优势：&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;　　1. PostgreSQL完全免费，而且是BSD协议，如果你把PostgreSQL改一改，然后再拿去卖钱，也没有人管你，这一点很重要，这表明了PostgreSQL数据库不会被其它公司控制。oracle数据库不用说了，是商业数据库，不开放。而MySQL数据库虽然是开源的，但现在随着SUN被oracle公司收购，现在基本上被oracle公司控制，其实在SUN被收购之前，MySQL中最重要的InnoDB引擎也是被oracle公司控制的，而在MySQL中很多重要的数据都是放在InnoDB引擎中的，反正我们公司都是这样的。所以如果MySQL的市场范围与oracle数据库的市场范围冲突时，oracle公司必定会牺牲MySQL，这是毫无疑问的。&amp;nbsp;&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;　　2. 与PostgreSQl配合的开源软件很多，有很多分布式集群软件，如pgpool、pgcluster、slony、plploxy等等，很容易做读写分离、负载均衡、数据水平拆分等方案，而这在MySQL下则比较困难。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;3. PostgreSQL源代码写的很清晰，易读性比MySQL强太多了，怀疑MySQL的源代码被混淆过。所以很多公司都是基本PostgreSQL做二次开发的。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;4. PostgreSQL在很多方面都比MySQL强，如复杂SQL的执行、存储过程、触发器、索引。同时PostgreSQL是多进程的，而MySQL是线程的，虽然并发不高时，MySQL处理速度快，但当并发高的时候，对于现在多核的单台机器上，MySQL的总体处理性能不如PostgreSQL，原因是MySQL的线程无法充分利用CPU的能力。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;目前只想到这些，以后想到再添加，欢迎大家拍砖。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;PostgreSQL与oracle或InnoDB的多版本实现的差别&lt;/strong&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;PostgreSQL与oracle或InnoDB的多版本实现最大的区别在于最新版本和历史版本是否分离存储，PostgreSQL不分，而oracle和InnoDB分，而innodb也只是分离了数据,索引本身没有分开。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;PostgreSQL的主要优势在于：&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;1. PostgreSQL没有回滚段，而oracle与innodb有回滚段，oracle与Innodb都有回滚段。对于oracle与Innodb来说，回滚段是非常重要的，回滚段损坏，会导致数据丢失，甚至数据库无法启动的严重问题。另由于PostgreSQL没有回滚段，旧数据都是记录在原先的文件中，所以当数据库异常crash后，恢复时，不会象oracle与Innodb数据库那样进行那么复杂的恢复，因为oracle与Innodb恢复时同步需要redo和undo。所以PostgreSQL数据库在出现异常crash后，数据库起不来的几率要比oracle和mysql小一些。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;2. 由于旧的数据是直接记录在数据文件中，而不是回滚段中，所以不会象oracle那样经常报ora-01555错误。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;3. 回滚可以很快完成，因为回滚并不删除数据，而oracle与Innodb，回滚时很复杂，在事务回滚时必须清理该事务所进行的修改，插入的记录要删除，更新的记录要更新回来(见row_undo函数)，同时回滚的过程也会再次产生大量的redo日志。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;4. WAL日志要比oracle和Innodb简单，对于oracle不仅需要记录数据文件的变化，还要记录回滚段的变化。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;PostgreSQL的多版本的主要劣势在于：&lt;br style="word-wrap: break-word; " /&gt;&lt;/strong&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;1、最新版本和历史版本不分离存储，导致清理老旧版本需要作更多的扫描，代价比较大，但一般的数据库都有高峰期，如果我们合理安排VACUUM，这也不是很大的问题，而且在PostgreSQL9.0中VACUUM进一步被加强了。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;　　2、由于索引中完全没有版本信息，不能实现Coverage index scan，即查询只扫描索引，直接从索引中返回所需的属性，还需要访问表。而oracle与Innodb则可以;&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;进程模式与线程模式的对比&lt;/strong&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;PostgreSQL和oracle是进程模式，MySQL是线程模式。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;进程模式对多CPU利用率比较高。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;进程模式共享数据需要用到共享内存，而线程模式数据本身就是在进程空间内都是共享的，不同线程访问只需要控制好线程之间的同步。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;线程模式对资源消耗比较少。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;所以MySQL能支持远比oracle多的更多的连接。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;对于PostgreSQL的来说，如果不使用连接池软件，也存在这个问题，但PostgreSQL中有优秀的连接池软件软件，如pgbouncer和pgpool，所以通过连接池也可以支持很多的连接。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;strong style="word-wrap: break-word; font-weight: 700; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;堆表与索引组织表的的对比&lt;br style="word-wrap: break-word; " /&gt;&lt;/strong&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;Oracle支持堆表，也支持索引组织表&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;PostgreSQL只支持堆表，不支持索引组织表&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;Innodb只支持索引组织表&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;索引组织表的优势：&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;表内的数据就是按索引的方式组织，数据是有序的，如果数据都是按主键来访问，那么访问数据比较快。而堆表，按主键访问数据时，是需要先按主键索引找到数据的物理位置。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;索引组织表的劣势：&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;索引组织表中上再加其它的索引时，其它的索引记录的数据位置不再是物理位置，而是主键值，所以对于索引组织表来说，主键的值不能太大，否则占用的空间比较大。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;对于索引组织表来说，如果每次在中间插入数据，可能会导致索引分裂，索引分裂会大大降低插入的性能。所以对于使用innodb来说，我们一般最好让主键是一个无意义的序列，这样插入每次都发生在最后，以避免这个问题。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;由于索引组织表是按一个索引树，一般它访问数据块必须按数据块之间的关系进行访问，而不是按物理块的访问数据的，所以当做全表扫描时要比堆表慢很多，这可能在OLTP中不明显，但在数据仓库的应用中可能是一个问题。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;　 PostgreSQL9.0中的特色功能：&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;PostgreSQL中的Hot Standby功能&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp; 也就是standby在应用日志同步时，还可以提供只读服务，这对做读写分离很有用。这个功能是oracle11g才有的功能。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;PostgreSQL异步提交（Asynchronous Commit）的功能&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;：&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;　 这个功能oracle中也是到oracle11g R2才有的功能。因为在很多应用场景中，当宕机时是允许丢失少量数据的，这个功能在这样的场景中就特别合适。在PostgreSQL9.0中把synchronous_commit设置为false就打开了这个功能。需要注意的是，虽然设置为了异步提交，当主机宕机时，PostgreSQL只会丢失少量数据，异步提交并不会导致数据损坏而数据库起不来的情况。MySQL中没有听说过有这个功能。&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;PostgreSQL中索引的特色功能&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;：&lt;/span&gt;&lt;br style="word-wrap: break-word; font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; " /&gt;&lt;span style="font-family: song, Verdana; line-height: 22px; background-color: #f0f3fa; "&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;PostgreSQL中可以有部分索引，也就是只能表中的部分数据做索引，create index 可以带where 条件。同时PostgreSQL中的索引可以反向扫描，所以在PostgreSQL中可以不必建专门的降序索引了。&lt;/span&gt;&amp;nbsp;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2343952.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/archive/2012/02/09/2343952.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/archive/2012/02/02/2335365.html</id><title type="text">让svn自动更新代码注释中的版本号</title><summary type="text">让svn自动更新代码注释中的版本号最近在做代码规范方面的工作，以前使用Eclipse时有插件支持将SVN版本号自动更新到代码页头注释中去。现在用Zend Studio 7来开发PHP项目，得找一个替代方案来做这个。后来在SVN手册中找到了一个非常简单的解决方案：1、打开C:/Users/[username]/AppData/Roaming/Subversion文件夹2、找到 config文件，并打开3、找到 nable-auto-props = yes 行，去掉行首的注释;在[auto-props]节上添加以下字段：*.css = svn:keywords=Id*.php = svn:keyw</summary><published>2012-02-02T01:54:00Z</published><updated>2012-02-02T01:54:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/archive/2012/02/02/2335365.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/archive/2012/02/02/2335365.html"/><content type="html">&lt;p&gt;&lt;strong&gt;让svn自动更新代码注释中的版本号&lt;/strong&gt;&lt;/p&gt;&lt;div style="color: #6d6d6d; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: normal; background-color: #ffffff; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; text-align: justify; line-height: 26px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 650px; text-indent: 2em; "&gt;最近在做代码规范方面的工作，以前使用Eclipse时有插件支持将SVN版本号自动更新到代码页头注释中去。现在用Zend Studio 7来开发PHP项目，得找一个替代方案来做这个。后来在SVN手册中找到了一个非常简单的解决方案：&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; text-align: justify; line-height: 26px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 650px; text-indent: 2em; "&gt;1、打开C:/Users/[username]/AppData/Roaming/Subversion文件夹&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; text-align: justify; line-height: 26px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 650px; text-indent: 2em; "&gt;2、找到 config文件，并打开&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; text-align: justify; line-height: 26px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 650px; text-indent: 2em; "&gt;3、找到 nable-auto-props = yes 行，去掉行首的注释;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; text-align: justify; line-height: 26px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 650px; text-indent: 2em; "&gt;在[auto-props]节上添加以下字段：&lt;/p&gt;&lt;pre id="bash" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #bfbcb6; border-right-color: #bfbcb6; border-bottom-color: #bfbcb6; border-left-color: #bfbcb6; border-image: initial; background-color: #fafafa; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; "&gt;&lt;span style="color: #666600; "&gt;*.&lt;/span&gt;&lt;span style="color: #000000; "&gt;css &lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; svn&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #000000; "&gt;keywords&lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #660066; "&gt;Id&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #666600; "&gt;*.&lt;/span&gt;&lt;span style="color: #000000; "&gt;php &lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; svn&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #000000; "&gt;keywords&lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #660066; "&gt;Id&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #666600; "&gt;*.&lt;/span&gt;&lt;span style="color: #000000; "&gt;html &lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; svn&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #000000; "&gt;keywords&lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #660066; "&gt;Id&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #666600; "&gt;*.&lt;/span&gt;&lt;span style="color: #000000; "&gt;tpl &lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; svn&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #000000; "&gt;keywords&lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #660066; "&gt;Id&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #666600; "&gt;*.&lt;/span&gt;&lt;span style="color: #000000; "&gt;txt &lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; svn&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #000000; "&gt;keywords&lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #660066; "&gt;Id&lt;/span&gt;&lt;span style="color: #000000; "&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #666600; "&gt;*.&lt;/span&gt;&lt;span style="color: #000000; "&gt;js &lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; svn&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #000000; "&gt;keywords&lt;/span&gt;&lt;span style="color: #666600; "&gt;=&lt;/span&gt;&lt;span style="color: #660066; "&gt;Id&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; text-align: justify; line-height: 26px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 650px; text-indent: 2em; "&gt;保存后创建一个文件，并在文件注释处添加 $Id$ ，然后添加并提交到版本库。提交成功再回过头看看这个文件，当$Id$被替换成类似这样：&lt;/p&gt;&lt;pre id="bash" style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #bfbcb6; border-right-color: #bfbcb6; border-bottom-color: #bfbcb6; border-left-color: #bfbcb6; border-image: initial; background-color: #fafafa; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; "&gt;&lt;span style="color: #000000; "&gt;$Id&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt; &lt;span style="color: #660066; "&gt;UsersController&lt;/span&gt;&lt;span style="color: #666600; "&gt;.&lt;/span&gt;&lt;span style="color: #000000; "&gt;php &lt;/span&gt;&lt;span style="color: #006666; "&gt;19629&lt;/span&gt; &lt;span style="color: #006666; "&gt;2011&lt;/span&gt;&lt;span style="color: #666600; "&gt;-&lt;/span&gt;&lt;span style="color: #006666; "&gt;05&lt;/span&gt;&lt;span style="color: #666600; "&gt;-&lt;/span&gt;&lt;span style="color: #006666; "&gt;09&lt;/span&gt; &lt;span style="color: #006666; "&gt;10&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #006666; "&gt;18&lt;/span&gt;&lt;span style="color: #666600; "&gt;:&lt;/span&gt;&lt;span style="color: #006666; "&gt;16Z&lt;/span&gt;&lt;span style="color: #000000; "&gt; zhuwanchun $&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.8em; margin-left: 0px; text-align: justify; line-height: 26px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; width: 650px; text-indent: 2em; "&gt;说明已经可以自动将SVN版本号更新到注释啊。注意，这种替换只对新创建的文件有效；当在已经提交到版本库中的文件添加$Id$发现并不会被替换成当前的版本号。&lt;/p&gt;&lt;/div&gt;&lt;div id="flinks" style="line-height: 25px; color: #6d6d6d; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; "&gt;本文如需转载,请务必注明：转载自：蓝色夏威夷 [http://www.coderbolg.com/]&lt;/div&gt;&lt;p&gt;&lt;span style="background-color: #ffffff; color: #6d6d6d; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 25px; "&gt;本文链接地址：&lt;/span&gt;&lt;a href="http://www.coderbolg.com/content/140.html" style="font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 25px; color: #0094e0; text-decoration: none; "&gt;&amp;nbsp;http://www.coderbolg.com/content/140.html&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2335365.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/archive/2012/02/02/2335365.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2309822.html</id><title type="text">10 套PSD格式的Web线框UI集合</title><summary type="text">当你需要为网站快速创建一个直观和可用的用户界面的时候，在写代码之前做好设计是基础。一个普遍的方法就是通过线框图（Wireframe）来展现你的设计。线框图是一种使用线条为基本元素的绘画，与蓝图相对，线框图表现基本的导航和功能块，比如内容、功能等。换句话说，线框图是一个网页布局的轮廓，是进行有效地网站设计和开发工作的基础。在本文中，我们收集了一些PSD格式的线框图，希望能够对你有所帮助，或为你的设计带来一些灵感。1. Web Wireframe Kit该套件以简单的方式来规划页面布局，对Web设计师来说，这是一个非常有价值的、省时的工具。2. Soft UI Kit：免费的Web原型设计PSD图</summary><published>2012-01-02T02:32:00Z</published><updated>2012-01-02T02:32:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2309822.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2309822.html"/><content type="html">&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;当你需要为网站快速创建一个直观和可用的用户界面的时候，在写代码之前做好设计是基础。一个普遍的方法就是通过线框图（Wireframe）来展现你的设计。线框图是一种使用线条为基本元素的绘画，与蓝图相对，线框图表现基本的导航和功能块，比如内容、功能等。换句话说，线框图是一个网页布局的轮廓，是进行有效地网站设计和开发工作的基础。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;在本文中，我们收集了一些PSD格式的线框图，希望能够对你有所帮助，或为你的设计带来一些灵感。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://www.emazekraker.biz/projects/webWireframeKit/" target="_blank" style="color: #006699; "&gt;1.&amp;nbsp; Web Wireframe Kit&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;该套件以简单的方式来规划页面布局，对Web设计师来说，这是一个非常有价值的、省时的工具。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614935/d0dfc575-1896-3f35-b42e-76717ccfb0cc.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://sixrevisions.com/freebies/web-page-templates/soft-ui-kit/" target="_blank" style="color: #006699; "&gt;2.&amp;nbsp; Soft UI Kit：免费的Web原型设计PSD图集&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Soft UI Kit是一个免费的PSD图集，其中包括了最常用的Web元素，这对Web原型设计师非常实用。该文件是完全分层的，可以很容易进行定制，以满足你的项目需求。这个文件由Adrian Pelletier提供，他拥有&lt;/span&gt;&lt;a href="http://www.designkindle.com/" target="_blank" style="color: #006699; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Design Kindle网站&lt;/a&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;，在这个网站中，你可以找到很多免费的Web设计资源。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614937/e8c639fe-23ec-38f6-8d95-0b3d4e1c2b8c.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://medialoot.com/item/the-ultimate-wireframe-ui-kit/" target="_blank" style="color: #006699; "&gt;3.&amp;nbsp; Web线框图集最终版&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;该集合包含了60多个最流行的Web设计元素。每个元素都是分层的，这意味着该套件是100％可扩展的，非常容易进行编辑。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614939/5c8e3295-f8f9-3a30-90b4-f83f410d7a40.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://www.fuelyourinterface.com/free-web-ui-wireframe-kit/" target="_blank" style="color: #006699; "&gt;4.&amp;nbsp; 免费Web线框图集合&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;有时候，你并不需要建立互动线框，或可能感觉Visio或OmniGraffle用着不顺手，我想此时应该是你打开Photoshop并开始工作的时候了。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614941/2503c2ce-9fda-3cbd-b2d0-4df7b8383730.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://graphicriver.net/item/silky-user-interface-100-vector-arts/861173?ref=pxcr" target="_blank" style="color: #006699; "&gt;5.&amp;nbsp; 平滑的用户界面（100%矢量图形）&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;100%可无损缩放的矢量图形，你可以轻松调整大小。你可以用它们来创建现代、独特风格的网站。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614943/2a6a03b3-2de8-36b8-9a12-ea5c7f9d87ac.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://graphicriver.net/item/the-ultimate-web-ui-kit/33230?ref=pxcr" target="_blank" style="color: #006699; "&gt;6.&amp;nbsp; Web UI包&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;这是一套综合的Web UI元素，旨在帮助设计人员节省创建Web原型的时间、成本和难度。借助这些元素，你可以极大地提高Web设计的效率。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614945/b72798cb-7dbb-387c-b903-6f123a72371e.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://graphicriver.net/item/user-interface-elements-simple-white/48724?ref=pxcr" target="_blank" style="color: #006699; "&gt;7.&amp;nbsp; 简单、白色的UI元素&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;该PSD集合可帮助你以一致的、清晰地风格来轻松定制Web设计/应用/界面元素。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614947/d84b8935-a2a5-397e-b3e0-3e492ae5e703.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://graphicriver.net/item/proffesional-ui-wireframing-elements/122597?ref=pxcr" target="_blank" style="color: #006699; "&gt;8.&amp;nbsp; 专业UI线框元素&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;这些UI线框元素主要用于专业线框图的创建，可以使后期的Web开发工作更加顺利。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614949/b278cb52-511b-3afc-9d96-b5f9df1e21d7.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://www.icondeposit.com/design:25" target="_blank" style="color: #006699; "&gt;9.&amp;nbsp; UI包&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;这是一个完整的UI工具包，包括星级评定、单选按钮、文本框、工具提示等。这些都是矢量图形，如果需要的话，你可以缩放到任何尺寸。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614951/3cdd4085-6110-36eb-a957-de1dad6feb97.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;&lt;a href="http://bestblogbox.com/freebies/all-in-one-web-elements-kit/" target="_blank" style="color: #006699; "&gt;10.&amp;nbsp; 多合一Web元素包&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;这是一个完整的Web元素包，你可能会发现这对你即将开展的项目非常有帮助。该集合共包含17种模块，每种模块有不同的变化版本。这些元素都在同一个PSD文件中，且是分层的，设计人员可以根据项目需要轻松定制。&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/614953/1c9d1808-b1b9-36e7-930a-aba7b0652125.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;英文原文：&lt;/span&gt;&lt;a href="http://idesignow.com/psd/10-psd-web-wireframe-ui-kits.html" target="_blank" style="color: #006699; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;10 PSD Web Wireframe UI Kits&lt;/a&gt;&amp;nbsp;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2309822.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2309822.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2307984.html</id><title type="text">如何学好C++语言</title><summary type="text">转自：http://coolshell.cn/articles/4119.html昨天写了一篇如何学好C语言，就有人回复问我如何学好C++，所以，我把我个人的一些学习经验写在这里，希望对大家有用。首先，因为如何学好C语言中谈到了算法和系统，所以这里就只谈C++语言。C++是最难的语言。这个世界上最难的编程语言可能非C++莫属了。你千万不要以为几天就可以学好C++，C++的学习曲线是相当BT的，你可以看看这篇文章。C++是一门很自由的语言，自由到了有点BT和恐怖的地步。我甚至认为C++并不是一门成熟的编程语言，因为太容易犯错了。所以，你一定要在一开始就要有很小心谨慎的态度，并把C++当成一种难以</summary><published>2011-12-30T13:18:00Z</published><updated>2011-12-30T13:18:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2307984.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2307984.html"/><content type="html">&lt;span  style="color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;转自：&lt;/p&gt;&lt;/span&gt;&lt;span  style="color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px; "&gt;&lt;a href="http://coolshell.cn/articles/4119.html"&gt;http://coolshell.cn/articles/4119.html&lt;/a&gt;&lt;/span&gt;&lt;span  style="color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;昨天写了一篇&lt;a title="如何学好C语言" href="http://coolshell.cn/articles/4102.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;如何学好C语言&lt;/a&gt;，就有人回复问我如何学好C++，所以，我把我个人的一些学习经验写在这里，希望对大家有用。首先，因为&lt;a title="如何学好C语言" href="http://coolshell.cn/articles/4102.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;如何学好C语言&lt;/a&gt;中谈到了算法和系统，所以这里就只谈C++语言。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;C++是最难的语言&lt;/strong&gt;。这个世界上最难的编程语言可能非C++莫属了。你千万不要以为&lt;a title="&amp;#8220;21天教你学会C++&amp;#8221;" href="http://coolshell.cn/articles/2250.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;几天就可以学好C++&lt;/a&gt;，C++的学习曲线是相当BT的，你可以看看&lt;a title="C++ 程序员自信心曲线图" href="http://coolshell.cn/articles/2287.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;这篇文章&lt;/a&gt;。C++是一门很自由的语言，自由到了有点&lt;a title="恐怖的C++语言" href="http://coolshell.cn/articles/1724.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;BT和恐怖的地步&lt;/a&gt;。我甚至认为C++并不是一门成熟的编程语言，因为太容易犯错了。所以，&lt;strong&gt;你一定要在一开始就要有很小心谨慎的态度，并把C++当成一种难以训服的猛兽来看待&lt;/strong&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;多问&amp;#8220;为什么要这样&amp;#8221;的问题&lt;/strong&gt;。学习C++一定要多问几个&amp;#8220;为什么是这样&amp;#8221;，&amp;#8220;凭什么要这样&amp;#8221;的问题。比如：很多人知道C++有拷贝构造函数和初始化列表，但你真的知道为什么要有拷贝构造函数？为什么要有初始化列表吗？为什么要有template，为什么要有RTTI，为什么不是别的呢？难道就是为了让一门语言变得Cool一些吗？完全不是这样的，C++中的任何一个feature都有些实实在在的原因，&lt;strong&gt;你一定要去了解为什么要把C++设计成这样的原因，你才能学好C++&lt;/strong&gt;。有空看看《&lt;a href="http://product.china-pub.com/5217" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C++演化和设计&lt;/a&gt;》一书。&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span id="more-4119"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;看书，大量的C++书&lt;/strong&gt;。你可以按如下先后顺序阅读（下面这些书，我花了大约4-5年的时间，今天我还在随时温习）&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;《&lt;a href="http://product.china-pub.com/28767" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C++ Primer&lt;/a&gt;》，这本初级读本可能让会你啃得很痛苦，所有的语言的特性和为什么都在里面了，好好读读。当然由C++之父写的《&lt;a href="http://product.china-pub.com/196448" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C++程序设计语言&lt;/a&gt;》也不错。两本看一本就好了（我看的是前者）。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;了解C++的语法仅仅是万里长征的第一步，你还需要看看《&lt;a href="http://product.china-pub.com/197414" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Effective C++&lt;/a&gt;》和《&lt;a href="http://product.china-pub.com/197665" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;More Effective C++&lt;/a&gt;》这两本书并不厚，但我从02年就一直看到现在，每次读我都有新的体会，这两本书太经典了。如果你对C语言不熟，这两本书会让你回去补C语言的课。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;a href="http://product.china-pub.com/4801" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Think in C++&lt;/a&gt;同样是另一本经典之极的书，学c++必读，但是中文版的翻译的很不好，所以还是去读英文版的吧。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;《&lt;a href="http://product.china-pub.com/38130&amp;amp;ref=browse" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C++沉思录&lt;/a&gt;》同样非常值得一读，这里教的不是编程，而是思考的方法，这是相当珍贵的。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;《&lt;a href="http://product.china-pub.com/33333" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Exceptional C++&lt;/a&gt;》和《&lt;a href="http://product.china-pub.com/197666" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;More Exceptional C++&lt;/a&gt;》让你看看各种问题的解决方法和一些常见的经典错误。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;《&lt;a href="http://product.china-pub.com/16697" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Advanced C++&lt;/a&gt;》和《&lt;a href="http://product.china-pub.com/9700" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Modern C++&lt;/a&gt;》可以让你知道C++各种神奇的用法。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;《&lt;a href="http://product.china-pub.com/9864" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;泛型编程与STL&lt;/a&gt;》是把C++实践到了极致的东西。很强大。STL&amp;#8212;&amp;#8212;神一样的模板库（容器，算法和函数对象），不得不服。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;《&lt;a href="http://www.china-pub.com/3290&amp;amp;ref=browse" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;深入探索C++对象模型&lt;/a&gt;》让你了解编译器下的C++是什么样的，让你了解C++的性能并不差。这个对于C++的程序员太关键了。我以前写过的《&lt;a href="http://blog.csdn.net/haoel/archive/2007/12/18/1948051.aspx" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C++虚函数表解析&lt;/a&gt;》还有《&lt;a href="http://blog.csdn.net/haoel/archive/2008/10/15/3081328.aspx" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C++对象内存布局&lt;/a&gt;》属于这个范畴。&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;和Java语言做对比&lt;/strong&gt;。我个人以为Java对C++这个并不成熟的语言做了很多调整，规范和限制。所以，对比一下Java和C++，想一想，为什么一些东西在C++中可以做，但在Java中却不行。比如：Java的异常是必需要catch的，不然就会编译不通过。为什么Java不提供操作符重载？为什么Java会引入接口来做多重继承？为什么Java没有像C++那样的I/O字符流？为什么Java不支持指针？为什么Java可以做到垃圾回收？等等。&lt;strong&gt;Java体现着很多面向对象设计的东西，学习Java有助于你学会怎么更好地使用C++来编程&lt;/strong&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;面向对象设计&lt;/strong&gt;&amp;nbsp;。虽然&lt;a title="面向对象是个骗局？！" href="http://coolshell.cn/articles/3036.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;面向对象可能是个骗局&lt;/a&gt;。但是我觉得面向对象设计中的一些实践非常的不错，比如，单一原则，依赖倒置原则，等等，都非常地经典。《&lt;a href="http://product.china-pub.com/25961" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;设计模式&lt;/a&gt;》必需一读，《&lt;a href="http://product.china-pub.com/47106" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;面向对象的分析和设计&lt;/a&gt;》可以一读。&lt;strong&gt;但不可以设计模式为中心来编程，而应该是用设计模式来解藕&lt;/strong&gt;。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;类库学习&lt;/strong&gt;。看看MFC是怎么封装Windows API的，看看ACE是怎么面向对象的，看看boost是怎么玩面向对象的，看看CPPUnit又是怎么设计的。当然，&lt;a title="JDK里的设计模式" href="http://coolshell.cn/articles/3320.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Java的JDK中有太多的设计模式&lt;/a&gt;，可以参考。&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;希望没有吓到大家，并欢迎大家补充。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em&gt;&lt;strong&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;更新 2011/03/30 19:20&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;更新几个观点：&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;1）我不擅长写书评，所以推荐的这些书可能会让你有点看点没有感觉，你可以上豆瓣或是China-pub上看看书评。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;2）C++有很多奇淫技巧，有的很BT，包括虚函数表，也许会有人觉得有点没意思，但我觉得很有意思，一方面可以了解一门语言的实现细节，另一方面可以开阔思路。我从学习这些知识中受益很多。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;3）上述是我的个人的学习历程，我觉得对我很有效，所以是经验之谈。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;4）这类的文章在网上有很多很多，我不是第一个写这样的文章，我也不是写得最好的，我并不希望用长篇大论来谈论什么。只是想给大家了解一下大概的学习样子。毕竟，C++博大精深，任何一篇文章都无法说好。不如就简单一些。&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2307984.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2307984.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2307982.html</id><title type="text">如何学好C语言</title><summary type="text">转自：http://coolshell.cn/articles/4102.html有人在酷壳的留言版上询问下面的问题keep_walker:今天晚上我看到这篇文章。http://programmers.stackexchange.com/questions/62502/small-c-projects我也遇到了和提问的老外一样的问题。。能给像遇到这样烦恼的程序员一点建议嘛？谢谢！我相信，这可能是很多朋友的问题，我以前也有这样的感觉，编程编到一定的时候，发现能力到了瓶颈，既不深，也不扎实，半吊子。比如：你长期地使用Java和.NET ，这些有虚拟机的语言对于开发便利是便利，但是对于程序员来说可能</summary><published>2011-12-30T13:17:00Z</published><updated>2011-12-30T13:17:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2307982.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2307982.html"/><content type="html">&lt;p&gt;转自：&lt;a href="http://coolshell.cn/articles/4102.html"&gt;http://coolshell.cn/articles/4102.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span  style="color: #555555; font-family: Arial, Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; line-height: 22px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;有人在酷壳的留言版上询问下面的问题&lt;/p&gt;&lt;blockquote cite="http://coolshell.cn/guestbook#commentbody-40269" style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 8px; padding-right: 12px; padding-bottom: 8px; padding-left: 36px; background-image: url(http://coolshell.cn/wp-content/themes/inove/img/blockquote.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f4f5f7; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; background-position: 3px 3px; background-repeat: no-repeat no-repeat; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;a href="http://coolshell.cn/guestbook#comment-40269" style="color: #2970a6; text-decoration: none; "&gt;keep_walker&lt;/a&gt;&amp;nbsp;&lt;strong&gt;:&lt;/strong&gt;&lt;br /&gt;今天晚上我看到这篇文章。&lt;br /&gt;&lt;a rel="nofollow" href="http://programmers.stackexchange.com/questions/62502/small-c-projects" style="color: #2970a6; text-decoration: none; "&gt;http://programmers.stackexchange.com/questions/62502/small-c-projects&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我也遇到了和提问的老外一样的问题。。能给像遇到这样烦恼的程序员一点建议嘛？谢谢！&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我相信，这可能是很多朋友的问题，我以前也有这样的感觉，编程编到一定的时候，发现能力到了瓶颈，既不深，也不扎实，半吊子。比如：你长期地使用Java和.NET ，这些有虚拟机的语言对于开发便利是便利，但是对于程序员来说可能并不太好，原因有两个：&lt;/p&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;虚拟机屏蔽了操作系统的系统调用，以及很多底层机制。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;大量的封装好的类库也屏蔽了很多实现细节。&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;一段时间后，你会发现你知其然，不知所以然。。我以前在CSDN上写过一篇《&lt;strong&gt;Java NIO类库Selector机制解析（&lt;a href="http://blog.csdn.net/haoel/archive/2008/03/27/2224055.aspx" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;上&lt;/a&gt;，&lt;a href="http://blog.csdn.net/haoel/archive/2008/03/27/2224069.aspx" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;下&lt;/a&gt;，&lt;a href="http://blog.csdn.net/haoel/archive/2008/05/04/2379586.aspx" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;续&lt;/a&gt;）&lt;/strong&gt;》，在那篇文章中我说提到过（有讥讽的语气）Java的程序员不懂底层实现，所以很难把技术学得更扎实。此时，一部分程序员会不自然地想学学底层的技术，很自然的，C语言就被提了上来。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;下面是我给这位朋友的一些建议：&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span id="more-4102"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;鼓励并为你叫好&lt;/strong&gt;。我鼓励你想要去学C语言的想法和精神，很多人都觉得C语言好学，其实并不然。（你可以看看《&lt;a rel="nofollow" href="http://coolshell.cn/articles/945.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C语言的迷题&lt;/a&gt;》）现在的这个社会更多地去关注那些时髦的技术，而忽略了这个流行了40+年的C语言。&lt;strong&gt;一门技术如果能够流行40多年，这才是你需要去关注和学习的技术&lt;/strong&gt;，而不是那些刚出来的技术（&lt;a title="那些炒作过度的技术和概念" href="http://coolshell.cn/articles/3609.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;过度炒作的技术&lt;/a&gt;，&lt;a title="Windows编程革命简史" href="http://coolshell.cn/articles/3008.html" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Windows编程史&lt;/a&gt;）。这才是踏踏实实的精神。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;不要找借口&lt;/strong&gt;。这一条路走下来并不容易，不要给自己找借口。我最不喜欢听到的就是&amp;#8220;&lt;strong&gt;很忙，没有时间&lt;/strong&gt;&amp;#8221;这样的借口。我以前在银行做项目，早9点到晚10点，周一到周六，我一样可以每天抽1个小时来看书和专研，一年下来也能精读5、6本书。我现在的工作项目和招聘任务很紧张，刚生的小孩只有自己和老婆两人带，还需要准备讲课，但是我还是能够找到时间看文章写文章维护酷壳。所以，我可以告诉你，&amp;#8220;&lt;strong&gt;时间就像乳沟，只要你肯挤，就一定会有&lt;/strong&gt;&amp;#8221;。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;学好C语言和系统编程&lt;/strong&gt;。我认为，学好编程有四个方面：&lt;strong&gt;语言、算法和数据结构、系统调用和设计&lt;/strong&gt;。&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;语言&lt;/strong&gt;。我可以告诉你C语言有两大主题你要好好学，一个是内存管理，一个是指针！这个世界上90%以上的C/C++出的严重性错误全是和这两个有关。不要看谭浩强的那本书，那本是本烂书。推荐这本书给你《&lt;a href="http://product.china-pub.com/14975&amp;amp;ref=browse" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;C程序设计语言（第2版&amp;#183;新版）&lt;/a&gt;&lt;span style="font-size: 13px; line-height: 19px; "&gt;》&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;span style="font-size: 13px; line-height: 19px; "&gt;&lt;strong&gt;算法和数据结构&lt;/strong&gt;。我认为，用C语言实现算法和数据结构莫过于最爽的事情。推荐你看这本书&amp;#8212;&amp;#8212;&lt;a href="http://product.china-pub.com/192975&amp;amp;ref=browse" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;算法:C语言实现(第1～4部分)基础知识、数据结构、排序及搜索(原书第3版)&lt;/a&gt;，还有那本经典的《&lt;a href="http://product.china-pub.com/31701" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;算法导论&lt;/a&gt;》&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;span style="font-size: 13px; line-height: 19px; "&gt;&lt;a href="http://product.china-pub.com/192975&amp;amp;ref=browse" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;&lt;/a&gt;&lt;strong&gt;系统编程&lt;/strong&gt;。Windows下推荐两本书&amp;#8212;&amp;#8212;《&lt;a href="http://product.china-pub.com/52880" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Windows 程序设计&amp;nbsp;&lt;/a&gt;》和《&lt;a href="http://product.china-pub.com/209058" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Windows核心编程&lt;/a&gt;》，Unix/Linux下推荐两本书&amp;#8212;&amp;#8212;《&lt;a href="http://product.china-pub.com/30181" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Unix高级环境编程&lt;/a&gt;》和《&lt;a href="http://product.china-pub.com/196770" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Unix网络编程卷1，套接字&lt;/a&gt;》《&lt;a href="http://product.china-pub.com/196859" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Unix网络编程卷2，进程间通信&lt;/a&gt;》尤其是《Unix网络编程》这本书，一通百通，无论Windows还是Unix/Linux，都是一样的。&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;&lt;strong&gt;系统设计&lt;/strong&gt;。关于设计方面，我全力推荐《&lt;a href="http://product.china-pub.com/197413" target="_blank" style="color: #2970a6; text-decoration: none; "&gt;Unix编程艺术&lt;/a&gt;》，看完以后，你就明白什么是真正的编程文化了。然后，当你看到Windows的Fans的某些言论时，你就知道什么叫一笑了之了。&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;如果你能在2-3年内精读完这些书，并全部融会贯通，那么你就明白什么是一览众山小的感觉了！我足足花了5年时间才算是真正全部读完这些书的。最后，祝你好运！努力！&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;em&gt;&lt;strong&gt;&amp;#8212;&amp;#8212;-更新：2011/03/29 20:00&amp;#8212;&amp;#8212;-&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;我想，这篇文章主要想告诉大家这么几件事：&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;编程编到一定时候，你就需要了解底层系统的机制，否则，知其然不知所以然。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;我没有否定非C的程序员的逻辑，真正的逻辑是&amp;#8212;&amp;#8212;如果你想要了解底层机制，请学习C语言和操作系统。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;40多年的Unix/C影响深远。包括影响了Windows。如果你想一通百通，一定要了解Unix。那是计算机文化真正的根。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 20px; list-style-position: inside; "&gt;不要肤浅地去思考问题。比如，不要以为一个DBA就不会考虑数据库引擎的内存页面的问题。也不要以为Web程序员就不需要了解后台的服务器和脚本的运行性能以及TCP/IP的问题。&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong&gt;高手往往都是有很强的系统的基础知识的，表面的东西永远是肤浅的。&lt;/strong&gt;&lt;/p&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2307982.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2307982.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2242965.html</id><title type="text">20套为设计师准备的免费矢量图标和PNG图标集</title><summary type="text">图标是Web设计中必不可少的元素。设计师在合适的位置添加图标可以让用户更形象、直观地初步了解产品。本文为设计师整理了20套免费的矢量图和PNG图标集合。1.应用程序构建图标2.设计组合图标3.社交图标4.图形图标5.苹果产品系列图标6.Web应用图标7.Mush图标8.软件、媒体图标9.3D立方体社交图标集10.3D立方体社交图标集11.老式收音机矢量图标12.设计师用的图标集合13.专业的电子商务图标集14.Blawb扩展图标15.50个WebToys图标16.Pixelbox免费图标集17.Onebit免费图标集18.免费的圣诞节图标19.免费的手型指示图标20.免费的表情图标VIADJD</summary><published>2011-11-09T07:45:00Z</published><updated>2011-11-09T07:45:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2242965.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2242965.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;图标是Web设计中必不可少的元素。设计师在合适的位置添加图标可以让用户更形象、直观地初步了解产品。本文为设计师整理了20套免费的矢量图和PNG图标集合。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;1.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LmRlc2ln/bmtpbmRs/ZS5jb20v/MjAxMS8x/MC8wNy9i/dWlsZC1p/Y29ucy8_/3D/b0/" target="_blank" style="color: #006699; "&gt;应用程序构建图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584429/fb397d65-ac54-3a93-9a37-511cdaac6e57.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;2.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LmRlc2ln/bmtpbmRs/ZS5jb20v/MjAxMS8x/MC8yMC9k/ZXNpZ24t/cG9ydGZv/bGlvLWlj/b25zLw_3/D_3D/b0/" target="_blank" style="color: #006699; "&gt;设计组合图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584426/ebb9beb7-d7c6-3852-a705-fe508834ea18.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;3.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LmRlc2ln/bmtpbmRs/ZS5jb20v/MjAxMS8x/MC8yNy9z/b2NpYWxp/cy8_3D/b0/" target="_blank" style="color: #006699; "&gt;社交图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584438/26a28543-2632-3b0d-8f70-7fbe465c4f0f.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;4.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LmRlc2ln/bmtpbmRs/ZS5jb20v/MjAxMS8x/MC8xMy9n/bHlwaC1p/Y29ucy8_/3D/b0/" target="_blank" style="color: #006699; "&gt;图形图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584428/fd85d5bd-cf95-3e90-b9c3-64be58949428.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;5.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LmRlc2ln/bmtpbmRs/ZS5jb20v/MjAxMS8w/OS8wNi9p/dW5pdHMv/b0/" target="_blank" style="color: #006699; "&gt;苹果产品系列图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584432/74691e7d-a0f8-3b44-a8e2-a76cbbe71397.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;6.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LmRlc2ln/bmtpbmRs/ZS5jb20v/MjAxMS8w/OC8zMS93/ZWItYXBw/LWljb25z/LXZvbC0x/Lw_3D_3D/b0/" target="_blank" style="color: #006699; "&gt;Web应用图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584434/4d413c1a-10c4-3cea-8299-7741994446c3.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;7.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LmRlc2ln/bmtpbmRs/ZS5jb20v/MjAxMS8w/My8xNi9t/dXNoLWlj/b25zLw_3/D_3D/b0/" target="_blank" style="color: #006699; "&gt;Mush图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584436/cd32c012-b94f-3a63-b7a9-9ac133662bec.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;8.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LnBpeGVk/ZW4uY29t/L21lZGlh/LWljb25z/L3NvZnQt/bWVkaWEt/aWNvbnMt/c2V0LXZv/bC0x/b0/" target="_blank" style="color: #006699; "&gt;软件、媒体图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584440/d66665a0-22a1-3db3-8ed6-459b8255afd2.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;9.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LnBpeGVk/ZW4uY29t/L3NvY2lh/bC1pY29u/cy9pc29t/ZXRyaWMt/M2Qtc29j/aWFsLWlj/b25zLXNl/dA_3D_3D/b0/" target="_blank" style="color: #006699; "&gt;3D立方体社交图标集&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584442/6e0a17f7-c736-3c4e-bd23-7dfc7dd097dd.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;10.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LnBpeGVk/ZW4uY29t/L3NvY2lh/bC1pY29u/cy9pc29t/ZXRyaWMt/M2Qtc29j/aWFsLWlj/b25zLXNl/dA_3D_3D/b0/" target="_blank" style="color: #006699; "&gt;3D立方体社交图标集&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584444/6dc81f33-89e1-3993-bf0a-135eb2cda49f.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;11.&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/Lmhvbmdr/aWF0LmNv/bS9ibG9n/L3ZpbnRh/Z2UtcmFk/aW8tdmVj/dG9yLWlj/b25zLw_3/D_3D/b0/" target="_blank" style="color: #006699; "&gt;老式收音机矢量图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584446/40ab57c5-14e0-317e-b912-07d23d14c470.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;12.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vdGhl/ZGVzaWdu/aW5zcGly/YXRpb24u/Y29tL2Fy/dGljbGVz/LzEwLWZy/ZWUtdXNl/ZnVsLWlj/b25zLWZv/ci1kZXNp/Z25lcnMv/b0/" target="_blank" style="color: #006699; "&gt;设计师用的图标集合&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584448/2fb35344-5bf3-3bcf-a652-fe82bd00da1f.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;13.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/LnNtYXNo/aW5nbWFn/YXppbmUu/Y29tLzIw/MTEvMDcv/MjgvZnJl/ZWJpZS1w/cm9mZXNz/aW9uYWwt/ZS1jb21t/ZXJjZS1p/Y29ucy1z/ZXQtMjAt/aWNvbnMv/b0/" target="_blank" style="color: #006699; "&gt;专业的电子商务图标集&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584450/192ca995-a316-3544-825c-cff06b8113eb.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;14.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vYXJy/aW9jaC5k/ZXZpYW50/YXJ0LmNv/bQ_3D_3D/b0/#/d424l4b" target="_blank" style="color: #006699; "&gt;Blawb扩展图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584452/719a48b8-de88-3172-95b4-01edff0402fd.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;15.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vYXJ0/ZGVzaWdu/ZXIubHYv/YXJjaGl2/ZXMvNzY5/b0/" target="_blank" style="color: #006699; "&gt;50个WebToys图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584454/a4067c48-f5a8-3fb4-99b5-bef045816335.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;16.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/Lmljb2ph/bS5jb20v/YmxvZy8_/2FcD0yMj/I_3D/b0/" target="_blank" style="color: #006699; "&gt;Pixelbox免费图标集&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584456/8a185347-2d84-3f65-9c17-adebe473ddd4.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;17.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/Lmljb2ph/bS5jb20v/YmxvZy8_/2FcD0yMz/E_3D/b0/" target="_blank" style="color: #006699; "&gt;Onebit免费图标集&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/585112/d6421f7c-2933-352a-b99d-13dbd233a6d0.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;18.&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/Lmljb2ph/bS5jb20v/YmxvZy8_/2FcGFnZW/Q9Mw_3D_/3D/b0/" target="_blank" style="color: #006699; "&gt;免费的圣诞节图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/585116/e6a5ef3d-de87-30d6-89fc-68e0260ad764.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;19.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/Lmljb2ph/bS5jb20v/YmxvZy8_/2FcD0xNj/g_3D/b0/" target="_blank" style="color: #006699; "&gt;免费的手型指示图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/584462/393d00fa-0fe8-379f-a9bf-ca3183f06a73.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;20.&amp;nbsp;&lt;a href="https://snapbrowse.com/browse.php/Oi8vd3d3/Lmljb2ph/bS5jb20v/YmxvZy8_/2FcD0xMT/Y_3D/b0/" target="_blank" style="color: #006699; "&gt;免费的表情图标&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/585118/4cd20ba1-85e8-37b9-9c92-73b795ab67f8.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;VIA&amp;nbsp;&lt;/span&gt;&lt;a href="http://djdesignerlab.com/2011/11/07/20-free-vector-and-png-icon-set-for-designers/" target="_blank" style="color: #006699; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;DJDESIGNERLAB&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2242965.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2242965.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2232639.html</id><title type="text">8个用于图片展示的jQuery插件及教程推荐</title><summary type="text">1.Nivo SliderNivo Slider是世界知名的轻量级jQuery图片幻灯片插件，可以制作出很漂亮的效果。它完全免费且彻底开源。2.Sponsor Flip Wall With jQuery &amp;amp; CSSSponsor Flip Wall是一个非常不错的显示数据到网格里的插件，它使用PHP、CSS与jQuery翻转插件制作而成，其实就是为了创建一个翻转赞助商页面。可以用来展示你的客户或生成一个整洁的翻转动画组合项目。3.PhotoSwipePhotoSwipe是一个免费的基于HTML/CSS/JavaScript的图片画廊插件，尤其可用于移动设备。4.TN3 GalleryT</summary><published>2011-11-02T02:07:00Z</published><updated>2011-11-02T02:07:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2232639.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2232639.html"/><content type="html">&lt;div&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;1.&amp;nbsp;&lt;a href="http://nivo.dev7studios.com/features/" target="_blank" style="color: #006699; "&gt;Nivo Slider&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Nivo Slider是世界知名的轻量级jQuery图片幻灯片插件，可以制作出很漂亮的效果。它完全免费且彻底开源。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580245/1ee4e183-38ee-3e9a-8c73-35057c01c2e3.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;2.&amp;nbsp;&lt;a href="http://tutorialzine.com/2010/03/sponsor-wall-flip-jquery-css/" target="_blank" style="color: #006699; "&gt;Sponsor Flip Wall With jQuery &amp;amp; CSS&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Sponsor Flip Wall是一个非常不错的显示数据到网格里的插件，它使用PHP、CSS与jQuery翻转插件制作而成，其实就是为了创建一个翻转赞助商页面。可以用来展示你的客户或生成一个整洁的翻转动画组合项目。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580247/5afd26eb-2450-3c01-ae08-46696dff27b0.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;3.&amp;nbsp;&lt;a href="http://www.photoswipe.com/" target="_blank" style="color: #006699; "&gt;PhotoSwipe&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;PhotoSwipe是一个免费的基于HTML/CSS/JavaScript的图片画廊插件，尤其可用于移动设备。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580249/59ca5f64-237a-3c48-8a9a-248e90ae2a22.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;4.&amp;nbsp;&lt;a href="http://www.tn3gallery.com/" target="_blank" style="color: #006699; "&gt;TN3 Gallery&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;TN3 Gallery也是一个jQuery图片画廊和幻灯片展示插件，支持多种转换效果及多相簿选项，可定制CSS皮肤等。它适用于所有的桌面及移动浏览器。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580251/ba46a321-7be8-3854-9627-408f85985406.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;5.&amp;nbsp;&lt;a href="http://manos.malihu.gr/sideways-jquery-fullscreen-image-gallery" target="_blank" style="color: #006699; "&gt;SIDEWAYS &amp;#8211; jQuery fullscreen image gallery&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;一个简单而又飘逸的全屏图片画廊插件，由jQuery框架及一些简单的CSS创建。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580253/16e8f079-ac5b-3599-b5f1-51a68cc39232.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;6.&amp;nbsp;&lt;a href="http://tympanus.net/codrops/2010/12/14/moleskine-notebook/" target="_blank" style="color: #006699; "&gt;Moleskine Notebook with jQuery Booklet&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;在这篇文章中，你可以学习到如何设计一个虚拟的Moleskine笔记本。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580255/0d6357e0-0c56-3ea6-bddd-fd486f732edb.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;7.&amp;nbsp;&lt;a href="http://www.zurb.com/playground/jquery_image_slider_plugin" target="_blank" style="color: #006699; "&gt;Orbit: A Slick jQuery Image Slider Plugin&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Orbit是由ZURB开发的一个jQuery幻灯片插件。该插件非常轻量级（只有4KB），容易使用且拥有许多好功能。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580257/ad1ac5a2-0a82-39b7-b3d5-dd1485b77355.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;strong style="font-weight: bold; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;8.&amp;nbsp;&lt;a href="http://plugins.jquery.com/project/Exposure" target="_blank" style="color: #006699; "&gt;Exposure&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Exposure是一个图片预览插件，用于创建丰富、自定义的视觉体验，可以处理海量数据。&amp;nbsp;&lt;/span&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;div style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; background-color: #f7f7f7; text-align: center; "&gt;&lt;img src="http://dl.iteye.com/upload/attachment/580259/14233ce0-8860-3178-aaf8-f3eb8cbaf5f9.jpeg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/div&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;br style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; " /&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Via&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;a href="http://qink.net/post/8-jQuery-Plugins-Tutorials-To-Display-Images.aspx" target="_blank" style="color: #006699; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 25px; text-align: left; background-color: #f7f7f7; "&gt;Qink&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2232639.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2232639.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2223318.html</id><title type="text">深入理解Zend SAPIs(Zend SAPI Internals)</title><summary type="text">作者:Laruence()本文地址:http://www.laruence.com/2008/08/12/180.html转载请注明出处SAPI: Server abstraction API，研究过PHP架构的同学应该知道这个东东的重要性，它提供了一个接口，使得PHP可以和其他应用进行交互数据。 本文不会详细介绍每个PHP的SAPI，只是针对最简单的CGI SAPI，来说明SAPI的机制。首先，我们来看看PHP的架构图：PHP架构图图1 PHP ArchitectureSAPI提供了一个和外部通信的接口， 对于PHP5.2，默认提供了很多种SAPI， 常见的给apache的mod_php5，</summary><published>2011-10-25T00:37:00Z</published><updated>2011-10-25T00:37:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2223318.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2223318.html"/><content type="html">&lt;div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;&lt;ul style="margin-top: 0px; margin-right: 1.5em; margin-bottom: 1.5em; margin-left: 1.5em; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 1em; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;作者:&amp;nbsp;&lt;a href="http://www.laruence.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;Laruence&lt;/a&gt;(&lt;a href="http://t.sina.com/laruence" target="meme" title="新浪微博" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;&lt;img src="http://www.laruence.com/images/ico-sina.png" style="margin-top: 0px; margin-right: 0px; margin-bottom: -3px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; border-width: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.twitter.com/laruence" target="meme" title="Twitter" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;&lt;img src="http://www.laruence.com/images/ico-twitter.png" style="margin-top: 0px; margin-right: 0px; margin-bottom: -3px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; border-width: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://fusion.google.com/add?feedurl=http://www.laruence.com/feed" target="meme" title="Google阅读器" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;&lt;img src="http://www.laruence.com/images/ico-google.png" style="margin-top: 0px; margin-right: 0px; margin-bottom: -3px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; border-width: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.laruence.com/feed" target="meme" title="Rss订阅" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;&lt;img src="http://www.laruence.com/images/feedico.gif" style="margin-top: 0px; margin-right: 0px; margin-bottom: -3px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; border-width: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#108;&amp;#97;&amp;#114;&amp;#117;&amp;#101;&amp;#110;&amp;#99;&amp;#101;&amp;#64;&amp;#121;&amp;#97;&amp;#104;&amp;#111;&amp;#111;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&amp;#46;&amp;#99;&amp;#110;" target="meme" title="邮件" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;&lt;img src="http://www.laruence.com/images/ico-mail.png" style="margin-top: 0px; margin-right: 0px; margin-bottom: -3px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; border-width: initial; border-color: initial; "  alt="" /&gt;&lt;/a&gt;)&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;本文地址:&amp;nbsp;&lt;a href="http://www.laruence.com/2008/08/12/180.html" title="Permanet Link to 深入理解Zend SAPIs(Zend SAPI Internals)" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;http://www.laruence.com/2008/08/12/180.html&lt;/a&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;转载请注明出处&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; text-indent: 1em; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;SAPI: Server abstraction API，研究过PHP架构的同学应该知道这个东东的重要性，它提供了一个接口，使得PHP可以和其他应用进行交互数据。 本文不会详细介绍每个PHP的SAPI，只是针对最简单的CGI SAPI，来说明SAPI的机制。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; text-indent: 1em; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;首先，我们来看看PHP的架构图：&lt;br /&gt;&lt;/p&gt;&lt;center style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 18px; background-color: #ffffff; "&gt;&lt;div id="attachment_181"  alignnone"="" style="margin-top: 10px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px; padding-top: 4px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dddddd; border-right-color: #dddddd; border-bottom-color: #dddddd; border-left-color: #dddddd; background-color: #f3f3f3; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; width: 303px; "&gt;&lt;a href="http://laruence-wordpress.stor.sinaapp.com/uploads/php-arch.jpg" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; color: #0000cc; "&gt;&lt;img src="http://laruence-wordpress.stor.sinaapp.com/uploads/php-arch-293x300.jpg" alt="PHP架构图" title="php-arch" width="293" height="300"  wp-image-181"="" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; border-width: initial; border-color: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 4px; padding-bottom: 5px; padding-left: 4px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-size: 11px; font-family: inherit; vertical-align: baseline; text-indent: 1em; line-height: 17px; "&gt;PHP架构图&lt;/p&gt;&lt;/div&gt;&lt;/center&gt;&lt;br style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 18px; background-color: #ffffff; " /&gt;&lt;center style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 18px; background-color: #ffffff; "&gt;图1 PHP Architecture&lt;/center&gt;&lt;br style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 18px; background-color: #ffffff; " /&gt;&lt;span style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line-height: 18px; background-color: #ffffff; "&gt;SAPI提供了一个和外部通信的接口， 对于PHP5.2，默认提供了很多种SAPI， 常见的给apache的mod_php5，CGI，给IIS的ISAPI，还有Shell的CLI，本文就从CGI SAPI入手 ，介绍SAPI的机制。 虽然CGI简单，但是不用担心，它包含了绝大部分内容，足以让你深刻理解SAPI的工作原理。&lt;/span&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; text-indent: 1em; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; text-indent: 1em; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;要定义个SAPI，首先要定义个sapi_module_struct, 查看 PHP-SRC/sapi/cgi/cgi_main.c:&lt;/p&gt;&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 18px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-size: 12px; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*/&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;sapi_module_struct&lt;/span&gt; cgi_sapi_module &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;#if&lt;/span&gt; PHP_FASTCGI&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"cgi-fcgi"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                     &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* name */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"CGI/FastCGI"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                  &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* pretty name */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;#else&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"cgi"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                          &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* name */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"CGI"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                          &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* pretty name */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;#endif&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;php_cgi_startup&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* startup */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;php_module_shutdown_wrapper&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* shutdown */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                           &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* activate */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgi_deactivate&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;            &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* deactivate */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgibin_ub_write&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;           &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* unbuffered write */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgibin_flush&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;              &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* flush */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                           &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* get uid */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgibin_getenv&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;             &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* getenv */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;php_error&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                      &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* error handler */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                           &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* header handler */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgi_send_headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;          &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* send headers handler */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                           &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* send header handler */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgi_read_post&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;             &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* read POST data */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgi_read_cookies&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;          &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* read Cookies */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgi_register_variables&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* register server variables */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_cgi_log_message&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;           &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* Log message */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;                           &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* Get request time */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STANDARD_SAPI_MODULE_PROPERTIES&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; text-indent: 1em; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;这个结构，包含了一些常量，比如name, 这个会在我们调用php_info()的时候被使用。一些初始化，收尾函数，以及一些函数指针，用来告诉Zend，如何获取，和输出数据。&lt;/p&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;1. php_cgi_startup， 当一个应用要调用PHP的时候，这个函数会被调用，对于CGI来说，它只是简单的调用了PHP的初始化函数：&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffffb6; "&gt;int&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;php_cgi_startup&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;sapi_module_struct&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;sapi_module&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;php_module_startup&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_module&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; NULL&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;==&lt;/span&gt; FAILURE&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; FAILURE&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; SUCCESS&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;2. php_module_shutdown_wrapper ， 一个对PHP关闭函数的简单包装。只是简单的调用php_module_shutdown;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;3. PHP会在每个request的时候，处理一些初始化，资源分配的事务。这部分就是activate字段要定义的，从上面的结构我们可以看出，对于CGI来说，它并没有提供初始化处理句柄。对于mod_php来说，那就不同了，他要在apache的pool中注册资源析构函数， 申请空间， 初始化环境变量，等等等等。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;4. sapi_cgi_deactivate, 这个是对应与activate的函数，顾名思义，它会提供一个handler, 用来处理收尾工作，对于CGI来说，他只是简单的刷新缓冲区，用以保证用户在Zend关闭前得到所有的输出数据：&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; int &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgi_deactivate&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;TSRMLS_D&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* flush only when SAPI was started. The reasons are:&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;        1. SAPI Deactivate is called from two places: module init and request shutdown&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;        2. When the first call occurs and the request is not set up, flush fails on&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;            FastCGI.&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;    */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_started&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;))&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgibin_flush&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;server_context&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;));&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; SUCCESS&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;5. sapi_cgibin_ub_write, 这个hanlder告诉了Zend，如何输出数据，对于mod_php来说，这个函数提供了一个向response数据写的接口，而对于CGI来说，只是简单的写到stdout：&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; inline size_t &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgibin_single_write&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;const&lt;/span&gt; char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;str&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; uint str_length TSRMLS_DC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#ifdef PHP_WRITE_STDOUT&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;long ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#else&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;size_t ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#endif&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#if PHP_FASTCGI&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_is_fastcgi&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;())&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fcgi_request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;fcgi_request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;server_context&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;long ret &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_write&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; FCGI_STDOUT&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; str&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; str_length&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;ret &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;lt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#endif&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#ifdef PHP_WRITE_STDOUT&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;write&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;STDOUT_FILENO&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; str&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; str_length&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;ret &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;lt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#else&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fwrite&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;str&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;1&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;MIN&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;str_length&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;16384&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;),&lt;/span&gt; stdout&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#endif&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; int &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgibin_ub_write&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;const&lt;/span&gt; char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;str&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; uint str_length TSRMLS_DC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;const&lt;/span&gt; char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;ptr &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; str&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint remaining &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; str_length&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;size_t ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;while&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;remaining &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;gt;&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ret &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgibin_single_write&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;ptr&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; remaining TSRMLS_CC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(!&lt;/span&gt;ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;php_handle_aborted_connection&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;();&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; str_length &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&lt;/span&gt; remaining&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ptr &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;+=&lt;/span&gt; ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;remaining &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-=&lt;/span&gt; ret&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; str_length&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; text-indent: 1em; "&gt;把真正的写的逻辑剥离出来，就是为了简单实现兼容fastcgi的写方式。&lt;/p&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;6. sapi_cgibin_flush, 这个是提供给zend的刷新缓存的函数句柄，对于CGI来说，只是简单的调用系统提供的fflush;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;7.NULL， 这部分用来让Zend可以验证一个要执行脚本文件的state，从而判断文件是否据有执行权限等等，CGI没有提供。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;8. sapi_cgibin_getenv, 为Zend提供了一个根据name来查找环境变量的接口，对于mod_php5来说，当我们在脚本中调用getenv的时候，就会间接的调用这个句柄。而对于CGI来说，因为他的运行机制和CLI很类似，直接调用父级是Shell， 所以，只是简单的调用了系统提供的genenv:&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgibin_getenv&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;name&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; size_t name_len TSRMLS_DC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#if PHP_FASTCGI&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* when php is started by mod_fastcgi, no regular environment&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;       is provided to PHP.  It is always sent to PHP at the start&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;       of a request.  So we have to do our own lookup to get env&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;       vars.  This could probably be faster somehow.  */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_is_fastcgi&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;())&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fcgi_request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;fcgi_request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;server_context&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_getenv&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; name&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; name_len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#endif&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/*  if cgi, or fastcgi and not found in fcgi env&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;        check the regular environment */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;getenv&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;name&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;9. php_error, 错误处理函数, 到这里，说几句题外话，上次看到php maillist 提到的使得PHP的错误处理机制完全OO化， 也就是，改写这个函数句柄，使得每当有错误发生的时候，都throw一个异常。而CGI只是简单的调用了PHP提供的错误处理函数。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;10. 这个函数会在我们调用PHP的header()函数的时候被调用，对于CGI来说，不提供。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;11. sapi_cgi_send_headers, 这个函数会在要真正发送header的时候被调用，一般来说，就是当有任何的输出要发送之前：&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; int &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgi_send_headers&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_headers_struct &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;sapi_headers TSRMLS_DC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char buf&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;[&lt;/span&gt;SAPI_CGI_MAX_HEADER_LENGTH&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;];&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sapi_header_struct &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;h&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;zend_llist_position pos&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request_info&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;no_headers &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;==&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;1&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt;  SAPI_HEADER_SENT_SUCCESSFULLY&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;cgi_nph &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;||&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;http_response_code &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;!=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;200&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;rfc2616_headers &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;http_status_line&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;len &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;snprintf&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;buf&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; SAPI_CGI_MAX_HEADER_LENGTH&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"%s\r\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;http_status_line&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;len &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;gt;&lt;/span&gt; SAPI_CGI_MAX_HEADER_LENGTH&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;len &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; SAPI_CGI_MAX_HEADER_LENGTH&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;else&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;len &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sprintf&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;buf&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"Status: %d\r\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;http_response_code&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;PHPWRITE_H&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;buf&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_header_struct&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*)&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;zend_llist_get_first_ex&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&amp;amp;&lt;/span&gt;sapi_headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&amp;gt;&lt;/span&gt;headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;amp;&lt;/span&gt;pos&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;while&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;h&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* prevent CRLFCRLF */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;h&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&amp;gt;&lt;/span&gt;header_len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;PHPWRITE_H&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;h&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&amp;gt;&lt;/span&gt;header&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; h&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&amp;gt;&lt;/span&gt;header_len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;PHPWRITE_H&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"\r\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;2&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;h &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;sapi_header_struct&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*)&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;zend_llist_get_next_ex&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&amp;amp;&lt;/span&gt;sapi_headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&amp;gt;&lt;/span&gt;headers&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;amp;&lt;/span&gt;pos&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;PHPWRITE_H&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"\r\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;2&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; SAPI_HEADER_SENT_SUCCESSFULLY&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;12. NULL, 这个用来单独发送每一个header, CGI没有提供&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;13. sapi_cgi_read_post, 这个句柄指明了如何获取POST的数据，如果做过CGI编程的话，我们就知道CGI是从stdin中读取POST DATA的，&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; int &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgi_read_post&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;buffer&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; uint count_bytes TSRMLS_DC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; tmp_read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#if PHP_FASTCGI&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;pos &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; buffer&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#endif&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;count_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;MIN&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;count_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;uint&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request_info&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;content_length &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;read_post_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;));&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;while&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;read_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;lt;&lt;/span&gt; count_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#if PHP_FASTCGI&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_is_fastcgi&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;())&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fcgi_request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;fcgi_request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;server_context&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmp_read_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_read&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; pos&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; count_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&lt;/span&gt; read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pos &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;+=&lt;/span&gt; tmp_read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;else&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmp_read_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;read&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; buffer &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;+&lt;/span&gt; read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; count_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&lt;/span&gt; read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#else&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tmp_read_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;read&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; buffer &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;+&lt;/span&gt; read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; count_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;-&lt;/span&gt; read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#endif&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;tmp_read_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;lt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;break&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;read_bytes &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;+=&lt;/span&gt; tmp_read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; read_bytes&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;14. sapi_cgi_read_cookies, 这个和上面的函数一样，只不过是去获取cookie值：&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgi_read_cookies&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;TSRMLS_D&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;return&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgibin_getenv&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;((&lt;/span&gt;char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"HTTP_COOKIE"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sizeof&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"HTTP_COOKIE"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;1&lt;/span&gt; TSRMLS_CC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;15. sapi_cgi_register_variables, 这个函数给了一个接口，用以给$_SERVER变量中添加变量，对于CGI来说，注册了一个PHP_SELF,这样我们就可以在脚本中访问$_SERVER['PHP_SELF']来获取本次的request_uri：&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; void &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgi_register_variables&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;zval &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;track_vars_array TSRMLS_DC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* In CGI mode, we consider the environment to be a part of the server&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;     * variables&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;     */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;php_import_environment_variables&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;track_vars_array TSRMLS_CC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* Build the special-case PHP_SELF variable for the CGI version */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;php_register_variable&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"PHP_SELF"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request_info&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;request_uri &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;?&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request_info&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;).&lt;/span&gt;request_uri &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;:&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;""&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;),&lt;/span&gt; track_vars_array TSRMLS_CC&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;16. sapi_cgi_log_message ，用来输出错误信息，对于CGI来说，只是简单的输出到stderr:&lt;pre name="code"  sh_sourcecode"="" linenum="off" style="margin-top: 1.5em; margin-bottom: 1.5em; padding-top: 9px; padding-right: 9px; padding-bottom: 9px; padding-left: 9px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 15px; border-style: initial; border-color: initial; border-image: initial; font-size: 1em; font-family: Monaco, Consolas, Courier, monospace; vertical-align: baseline; font: normal normal normal 1em/normal 'andale mono', 'lucida console', monospace; line-height: 1.5; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #333333; color: #f6f3e8; border-left-style: solid; border-left-color: #c9c9c9; overflow-x: auto; "&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;static&lt;/span&gt; void &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sapi_cgi_log_message&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;message&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#if PHP_FASTCGI&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_is_fastcgi&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;()&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;amp;&amp;amp;&lt;/span&gt; fcgi_logging&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fcgi_request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;;&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;TSRMLS_FETCH&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;();&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;fcgi_request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;SG&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;server_context&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;if&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;)&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int len &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;strlen&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;message&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;char &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;*&lt;/span&gt;buf &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;=&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;malloc&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;+2&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;memcpy&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;buf&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; message&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;memcpy&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;buf &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;+&lt;/span&gt; len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;sizeof&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;));&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fcgi_write&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;request&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; FCGI_STDERR&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; buf&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; len&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ff73fd; "&gt;+1&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;free&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;buf&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;else&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;{&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fprintf&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;stderr&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"%s\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; message&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;/* ignore return code */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #96cbfe; "&gt;else&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #7c7c7c; "&gt;#endif /* PHP_FASTCGI */&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #ffd2a7; "&gt;fprintf&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;(&lt;/span&gt;stderr&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-family: inherit; vertical-align: baseline; color: #a8ff60; "&gt;"%s\n"&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;,&lt;/span&gt; message&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;);&lt;/span&gt;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-style: inherit; font-family: inherit; vertical-align: baseline; "&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/li&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; vertical-align: baseline; text-indent: 1em; color: #222222; line-height: 18px; background-color: #ffffff; "&gt;经过分析，我们已经了解了一个SAPI是如何实现的了， 分析过CGI以后，我们也就可以想象mod_php, embed等SAPI的实现机制。 ：）&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2223318.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2223318.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2223316.html</id><title type="text">PHP底层工作原理</title><summary type="text">最近搭建服务器，突然感觉lamp之间到底是怎么工作的，或者是怎么联系起来？平时只是写程序，重来没有思考过他们之间的工作原理：PHP底层工作原理图1 php结构从图上可以看出，php从下到上是一个4层体系①Zend引擎Zend整体用纯c实现，是php的内核部分，它将php代码翻译（词法、语法解析等一系列编译过程）为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构（如hashtable、oo）、内存分配及管理、提供了相应的api方法供外部调用，是一切的核心，所有的外围功能均围绕zend实现。②Extensions围绕着zend引擎，extensions通过组件式的方式提供各种基础</summary><published>2011-10-25T00:36:00Z</published><updated>2011-10-25T00:36:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2223316.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2223316.html"/><content type="html">&lt;div&gt;&lt;div id="cnblogs_post_body" style="color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;最近搭建服务器，突然感觉lamp之间到底是怎么工作的，或者是怎么联系起来？平时只是写程序，重来没有思考过他们之间的工作原理：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #3366ff; background-color: #999999; font-size: 24pt; "&gt;PHP底层工作原理&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131718487767.png" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;&lt;img title="wps_clip_image-29471" border="0" alt="wps_clip_image-29471" src="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131718528130.png" width="752" height="467" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;图1 php结构&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;从图上可以看出，php从下到上是一个4层体系&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&amp;#9312;Zend引擎&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;Zend整体用纯c实现，是php的内核部分，它将php代码翻译（词法、语法解析等一系列编译过程）为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构（如hashtable、oo）、内存分配及管理、提供了相应的api方法供外部调用，是一切的核心，所有的外围功能均围绕zend实现。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&amp;#9313;Extensions&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;围绕着zend引擎，extensions通过组件式的方式提供各种基础服务，我们常见的各种内置函数（如array系列）、标准库等都是通过extension来实现，用户也可以根据需要实现自己的extension以达到功能扩展、性能优化等目的（如贴吧正在使用的php中间层、富文本解析就是extension的典型应用）。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&amp;#9314;Sapi&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;Sapi全称是Server Application Programming Interface，也就是服务端应用编程接口，sapi通过一系列钩子函数，使得php可以和外围交互数据，这是php非常优雅和成功的一个设计，通过sapi成功的将php本身和上层应用解耦隔离，php可以不再考虑如何针对不同应用进行兼容，而应用本身也可以针对自己的特点实现不同的处理方式。后面将在sapi章节中介绍&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&amp;#9315;上层应用&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;这就是我们平时编写的php程序，通过不同的sapi方式得到各种各样的应用模式，如通过webserver实现web应用、在命令行下以脚本方式运行等等。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;strong&gt;&lt;span style="color: #3366ff; background-color: #999999; font-size: 16px; "&gt;构架思想：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;引擎(Zend)+组件(ext)的模式降低内部耦合&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;中间层(sapi)隔绝web server和php&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;**************************************************************************&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;如果php是一辆车，那么&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;车的框架就是php本身&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;Zend是车的引擎（发动机）&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;Ext下面的各种组件就是车的轮子&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;Sapi可以看做是公路，车可以跑在不同类型的公路上&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;而一次php程序的执行就是汽车跑在公路上。&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;因此，我们需要：性能优异的引擎+合适的车轮+正确的跑道&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="background-color: #999999; font-size: 24pt; "&gt;&lt;strong&gt;&lt;span style="color: #0000ff; "&gt;Apache和php的关系&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;Apache对于php的解析，就是通过众多Module中的php Module来完成的。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131718539690.png" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;&lt;img title="wps_clip_image-31721" border="0" alt="wps_clip_image-31721" src="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131718566084.png" width="378" height="299" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;把php最终集成到Apache系统中，还需要对Apache进行一些必要的设置。这里，我们就以php的mod_php5 SAPI运行模式为例进行讲解，至于SAPI这个概念后面我们还会详细讲解。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;假定我们安装的版本是Apache2 和 Php5，那么需要编辑Apache的主配置文件http.conf，在其中加入下面的几行内容：&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;Unix/Linux环境下：&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;LoadModule php5_module modules/mod_php5.so&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;AddType application/x-httpd-php .php&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;注：其中modules/mod_php5.so 是X系统环境下mod_php5.so文件的安装位置。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;Windows环境下：&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;LoadModule php5_module d:/php/php5apache2.dll&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;AddType application/x-httpd-php .php&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;注：其中d:/php/php5apache2.dll 是在Windows环境下php5apache2.dll文件的安装位置。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;这两项配置就是告诉Apache Server，以后收到的Url用户请求，凡是以php作为后缀，就需要调用php5_module模块（mod_php5.so/ php5apache2.dll）进行处理。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #0000ff; background-color: #999999; font-size: 24pt; "&gt;Apache的生命周期&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131718581331.png" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;&lt;img title="wps_clip_image-8490" border="0" alt="wps_clip_image-8490" src="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131719004038.png" width="504" height="356" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #0000ff; background-color: #999999; font-size: 24pt; "&gt;Apach的请求处理流程&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131719029809.png" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;&lt;img title="wps_clip_image-17917" border="0" alt="wps_clip_image-17917" src="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131719054599.png" width="512" height="448" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;strong&gt;&lt;span style="color: #339966; "&gt;Apache请求处理循环详解&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache请求处理循环的11个阶段都做了哪些事情呢？&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;1、Post-Read-Request阶段&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;在正常请求处理流程中，这是模块可以插入钩子的第一个阶段。对于那些想很早进入处理请求的模块来说，这个阶段可以被利用。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;2、URI Translation阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：将请求的URL映射到本地文件系统。模块可以在这阶段插入钩子，执行自己的映射逻辑。mod_alias就是利用这个阶段工作的。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;3、Header Parsing阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：检查请求的头部。由于模块可以在请求处理流程的任何一个点上执行检查请求头部的任务，因此这个钩子很少被使用。mod_setenvif就是利用这个阶段工作的。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;4、Access Control阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：根据配置文件检查是否允许访问请求的资源。Apache的标准逻辑实现了允许和拒绝指令。mod_authz_host就是利用这个阶段工作的。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;5、Authentication阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：按照配置文件设定的策略对用户进行认证，并设定用户名区域。模块可以在这阶段插入钩子，实现一个认证方法。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;6、Authorization阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：根据配置文件检查是否允许认证过的用户执行请求的操作。模块可以在这阶段插入钩子，实现一个用户权限管理的方法。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;7、MIME Type Checking阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：根据请求资源的MIME类型的相关规则，判定将要使用的内容处理函数。标准模块mod_negotiation和mod_mime实现了这个钩子。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;8、FixUp阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这是一个通用的阶段，允许模块在内容生成器之前，运行任何必要的处理流程。和Post_Read_Request类似，这是一个能够捕获任何信息的钩子，也是最常使用的钩子。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;9、Response阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：生成返回客户端的内容，负责给客户端发送一个恰当的回复。这个阶段是整个处理流程的核心部分。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;10、Logging阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：在回复已经发送给客户端之后记录事务。模块可能修改或者替换Apache的标准日志记录。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;11、CleanUp阶段&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apache在本阶段的主要工作：清理本次请求事务处理完成之后遗留的环境，比如文件、目录的处理或者Socket的关闭等等，这是Apache一次请求处理的最后一个阶段。&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #0000ff; background-color: #999999; font-size: 24pt; "&gt;&lt;strong&gt;LAMP架构：&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131719063585.png" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;&lt;img title="wps_clip_image-24435" border="0" alt="wps_clip_image-24435" src="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131719078178.png" width="399" height="394" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;从下往上四层：&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;&amp;#9312;liunx 属于操作系统的底层&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;&amp;#9313;apache服务器，属于次服务器，沟通linux和PHP&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;&amp;#9314;php:属于服务端编程语言，通过php_module 模块 和apache关联&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#9315;mysql和其他web服务：属于应用服务，通过PHP的Extensions外 挂模块和mysql关联&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #0000ff; background-color: #999999; font-size: 24pt; "&gt;&lt;strong&gt;Android系统架构图&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;lamp和安卓的架构图比较一下，貌似和lamp架构有点相似，本人不懂安卓，只是感觉上有点相似，高手可以指出区别，小弟在此不胜感谢&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131719122817.png" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;&lt;img title="wps_clip_image-27187" border="0" alt="wps_clip_image-27187" src="http://images.cnblogs.com/cnblogs_com/phphuaibei/201109/201109131719193020.png" width="478" height="344" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;从上往下：&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;安卓架构--------------说明--------LAMP架构&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;1.应用程序 --------具体应用--------web应用&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;2.应用程序框架 ----java-------------PHP语言和库&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;3.系统运行库 ：----虚拟机---------WEB服务器&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&amp;#9355;Linux 内核 ：---操作系统-------lamp架构中的L&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;span style="color: #339966; "&gt;&lt;strong&gt;&lt;span style="font-size: 18pt; "&gt;lamp和电脑内部的关系&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/327316/2011091516500618.jpg" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="color: #000000; font-size: 12.5pt; font-family: 宋体; "&gt;CPU是工厂，硬盘是大仓库，内存是正规中转中心，虚拟内存是临时中转中心&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="font-size: 10.5pt; font-family: 宋体; "&gt;Php&lt;span face="宋体"&gt;语言由&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;zend&lt;/span&gt;&lt;span face="宋体"&gt;编译成机器语言，操作&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;cpu&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="font-size: 10.5pt; font-family: 宋体; "&gt;对数据库的操作属于&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;I/O&lt;/span&gt;&lt;span face="宋体"&gt;操作，属于机械运动，也就是说一个网站的瓶颈再去对硬盘的读写造成的，解决办法就是减少&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;i/o&lt;/span&gt;&lt;span face="宋体"&gt;操作次数，使用缓冲技术，就是在数据的操作放在&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;mencache&lt;/span&gt;&lt;span face="宋体"&gt;里面，达到一定数量级的时候在一次性写入数据库，&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;mencache&lt;/span&gt;&lt;span face="宋体"&gt;属于&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;key--value&lt;/span&gt;&lt;span face="宋体"&gt;关系&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="font-size: 10.5pt; font-family: 宋体; "&gt;而非关系型数据也是基于这个理念建设的，也是属于&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;key--value&lt;/span&gt;&lt;span face="宋体"&gt;关系&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="font-size: 10.5pt; font-family: 宋体; "&gt;频繁读操作&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;------&lt;/span&gt;&lt;span face="宋体"&gt;放在&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;mencache&lt;/span&gt;&lt;span face="宋体"&gt;里面&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0pt; margin-bottom: 0pt; "&gt;&lt;span style="font-size: 10.5pt; font-family: 宋体; "&gt;读多写少&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 宋体; "&gt;----&lt;span face="宋体"&gt;放在&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;nosql&lt;/span&gt;&lt;span face="宋体"&gt;里面&lt;/span&gt;&lt;span face="Times New Roman" style="font-family: 'Times New Roman'; "&gt;------&lt;/span&gt;&lt;span face="宋体"&gt;读取功能很强大！&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;&lt;strong&gt;&lt;span style="color: #339966; "&gt;更深入的学习和了解可以查看下面：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;风雨的博客&lt;a href="http://www.laruence.com/2008/08/12/180.html" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;http://www.laruence.com/2008/08/12/180.html&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;百度研发中心的博客&lt;a href="http://stblog.baidu-tech.com/?p=763" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;http://stblog.baidu-tech.com/?p=763&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 12px; margin-bottom: 12px; "&gt;王兴宾的博客&lt;a href="http://blog.csdn.net/wanghao72214/article/details/3916825" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;http://blog.csdn.net/wanghao72214/article/details/3916825&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id="MySignature" style="margin-top: 10px; color: #333333; font-family: Georgia, 'Times New Roman', Times, sans-serif; line-height: 25px; text-align: left; background-color: #ffffff; "&gt;&lt;p style="margin-top: 10px; margin-bottom: 10px; background-color: #f8f8ee; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: #e8e7d0; border-right-color: #e8e7d0; border-bottom-color: #e8e7d0; border-left-color: #e8e7d0; padding-top: 5px; padding-right: 10px; padding-bottom: 0px; padding-left: 10px; min-height: 10px; color: #666666; "&gt;&lt;a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;&lt;img alt="知识共享许可协议" src="http://i.creativecommons.org/l/by-nc-nd/3.0/88x31.png" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; background-color: #ffffff; " /&gt;&lt;/a&gt;&lt;span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type"&gt;本文基于&lt;a target="_blank" title="Attribution-NonCommercial 3.0 Unported" href="http://creativecommons.org/licenses/by-nc/3.0/deed.zh" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;署名-非商业性使用 3.0&lt;/a&gt;许可协议发布，欢迎转载，演绎，但是必须保留本文的署名&lt;a href="http://www.cnblogs.com/phphuaibei" target="_blank" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;PHP淮北&lt;/a&gt;（包含链接），且不得用于商业目的。如您有任何疑问或者授权方面的协商，请&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#102;&amp;#117;&amp;#110;&amp;#99;&amp;#105;&amp;#116;&amp;#121;&amp;#46;&amp;#99;&amp;#121;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;" target="_blank" style="outline-style: none; outline-width: initial; outline-color: initial; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; "&gt;与我联系&lt;/a&gt;。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2223316.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2223316.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/analyzer/articles/2219819.html</id><title type="text">免费图形文件资源站推荐</title><summary type="text">在使用Photoshop的时候,有时候会需要一些图标等素材,自己做又觉得很费时间(主要是不会做，呵呵),所以会去网上找一些PSD素材,可是有些网站的素材实在是难看的要死,所以今天为大家推荐一些素材下载网站……1.365PSD365PSD是一个免费的PSD文件分享网站,站内的PSD资源文件主要以网页UI元素和图标为主,更新频率较快.点击访问2.DesignmooDesignmoo也是一个以PSD分享为主的网站,站内资源以按钮,图标以及页面特效的PSD文件为主,更新频率一般.点击访问3.SoftIcons光看名字就知道这个网站的内容了,这个网站主要分享图标素材,最重要的是站内的图标质量相当不错,每</summary><published>2011-10-21T01:13:00Z</published><updated>2011-10-21T01:13:00Z</updated><author><name>analyzer</name><uri>http://www.cnblogs.com/analyzer/</uri></author><link rel="alternate" href="http://www.cnblogs.com/analyzer/articles/2219819.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/analyzer/articles/2219819.html"/><content type="html">&lt;p&gt;在使用Photoshop的时候,有时候会需要一些图标等素材,自己做又觉得很费时间(主要是不会做，呵呵),所以会去网上找一些PSD素材,可是有些网站的素材实在是难看的要死,所以今天为大家推荐一些素材下载网站&amp;#8230;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.x-berry.com/wordpress/wp-content/uploads/2011/07/freepsdweb.png"&gt;&lt;img  title="免费图形文件资源站推荐" height="118" alt="freepsdweb " src="http://www.x-berry.com/wordpress/wp-content/uploads/2011/07/freepsdweb.png" width="480" /&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span id="more-7245"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;1.&lt;span style="color: #0000ff"&gt;&lt;strong&gt;365PSD&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;365PSD是一个免费的PSD文件分享网站,站内的PSD资源文件主要以网页UI元素和图标为主,更新频率较快.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://365psd.com/"&gt;点击访问&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;2.&lt;span style="color: #0000ff"&gt;&lt;strong&gt;Designmoo&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Designmoo也是一个以PSD分享为主的网站,站内资源以按钮,图标以及页面特效的PSD文件为主,更新频率一般.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://designmoo.com/"&gt;点击访问&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;3.&lt;strong&gt;&lt;span style="color: #0000ff"&gt;SoftIcons&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;光看名字就知道这个网站的内容了,这个网站主要分享图标素材,最重要的是站内的图标质量相当不错,每天均有更新.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.softicons.com/"&gt;点击访问&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;4.&lt;strong&gt;&lt;span style="color: #0000ff"&gt;PSDlist&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;这个网站主要提供用户最新的PSD文件下载列表,也算是一个资源收集类的网站,在实际访问中,因为网络关系可能个别文件无法下载,更新速度与素材源网站有关.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://psdlist.com/"&gt;点击访问&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;5.&lt;strong&gt;&lt;span style="color: #0000ff"&gt;Premium Pixels&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Premium Pixels也是一个PSD文件分享网站,但是其网站资源,更新相对较慢.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://www.premiumpixels.com/"&gt;点击访问&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;6.&lt;strong&gt;&lt;span style="color: #0000ff"&gt;下吧&lt;/span&gt;&lt;/strong&gt;&amp;#8212;&amp;#8212;视觉中国旗下网站&lt;/p&gt;&#xD;
&lt;p&gt;下吧&amp;#8212;&amp;#8212;视觉中国旗下网站,站内资源丰富,矢量,3D,分层素材应有尽有,资源庞大,因网络原因无法访问以上站点的话可以来这里看看.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://down.chinavisual.com/"&gt;点击访问&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div &gt;本文链接：&lt;a title="免费图形文件资源站推荐" href="http://www.x-berry.com/free-psd-website" rel="nofollow"&gt;http://www.x-berry.com/free-psd-website&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/analyzer/aggbug/2219819.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/analyzer/articles/2219819.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
