# php_manual

id: mysqli_stmt::reset
type: function
doc:
<comment>Description:</comment>
  Resets a prepared statement
  
  面向对象风格
  
  过程化风格
  
  Resets a prepared statement on client and server to state after prepare.
  
  It resets the statement on the server, data sent using <strong>mysqli_stmt_send_long_data()</strong>,  unbuffered
  result sets and current errors. It does not clear bindings or stored result sets.  Stored result
  sets will be cleared when executing the prepared statement (or closing it).
  
  To prepare a statement with another query use function <strong>mysqli_stmt_prepare()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>


id: mysqli_stmt::result_metadata
type: function
doc:
<comment>Description:</comment>
  Returns result set metadata from a prepared statement
  
  面向对象风格
  
  过程化风格
  
  If a statement passed to <strong>mysqli_prepare()</strong> is one that produces a result set,
  <strong>mysqli_stmt_result_metadata()</strong> returns the result object that can be used to process the meta
  information such as total number of fields and individual field information.
  
  This result set pointer can be passed as an argument to any of the field-based functions that
  process result set metadata, such as:
  <strong>mysqli_num_fields()</strong><strong>mysqli_fetch_field()</strong><strong>mysqli_fetch_field_direct()</strong><strong>mysqli_fetch_fields()</strong><strong>mysqli_field_count()</strong><strong>mysqli_field_seek()</strong><strong>mysqli_field_tell()</strong><strong>mysqli_free_result()</strong>
  
  <strong>mysqli_num_fields()</strong>
  
  <strong>mysqli_fetch_field()</strong>
  
  <strong>mysqli_fetch_field_direct()</strong>
  
  <strong>mysqli_fetch_fields()</strong>
  
  <strong>mysqli_field_count()</strong>
  
  <strong>mysqli_field_seek()</strong>
  
  <strong>mysqli_field_tell()</strong>
  
  <strong>mysqli_free_result()</strong>
  
  The result set structure should be freed when you are done with it, which you can do by passing it
  to <strong>mysqli_free_result()</strong>
  
  The result set returned by <strong>mysqli_stmt_result_metadata()</strong> contains only metadata. It does not
  contain any row results. The rows are obtained by using the statement handle with
  <strong>mysqli_stmt_fetch()</strong>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>mysqli_result|false</info>  Returns a result object or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_free_result()</strong>


id: mysqli_stmt::send_long_data
type: function
doc:
<comment>Description:</comment>
  Send data in blocks
  
  面向对象风格
  
  过程化风格
  
  Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob
  exceeds the size of <return>max_allowed_packet</return>. This function can be called multiple times to send the
  parts of a character or binary data value for a column, which must be one of the TEXT or BLOB
  datatypes.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。
  <info>int</info>          <strong>$param_num</strong>  Indicates which parameter to associate the data with. Parameters are
                           numbered beginning with 0.
  <info>string</info>       <strong>$data</strong>       A string containing data to be sent.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_bind_param()</strong>


id: mysqli_stmt::store_result
type: function
doc:
<comment>Description:</comment>
  Stores a result set in an internal buffer
  
  面向对象风格
  
  过程化风格
  
  This function should be called for queries that successfully  produce a result set (e.g. <return>SELECT,
  SHOW, DESCRIBE, EXPLAIN</return>) only if the complete result set needs to be buffered in PHP. Each
  subsequent <strong>mysqli_stmt_fetch()</strong> call will return buffered data.
  
  It is unnecessary to call <strong>mysqli_stmt_store_result()</strong> for other queries, but if you do, it will not
  harm or cause any notable performance loss in all cases. You can detect whether the query produced
  a result set by checking if <strong>mysqli_stmt_result_metadata()</strong> returns <info>false</info>.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>
   * <strong>mysqli_stmt_result_metadata()</strong>
   * <strong>mysqli_stmt_fetch()</strong>


id: mysqli_stmt_affected_rows
type: function
doc:
<comment>Description:</comment>
  Returns the total number of rows changed, deleted, inserted, or
    matched by the last statement executed
    
  
  面向对象风格
  
  过程化风格
  
  Returns the number of rows affected by <return>INSERT</return>, <return>UPDATE</return>, or <return>DELETE</return> query.  Works like
  <strong>mysqli_stmt_num_rows()</strong> for <return>SELECT</return> statements.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>int|string</info>  An integer greater than zero indicates the number of rows affected or retrieved. Zero
              indicates that no records were updated for an  <return>UPDATE</return> statement, no rows matched the
              <return>WHERE</return> clause in the query or that no query has yet been executed. <return>-1</return> indicates that
              the query returned an error or that, for a <return>SELECT</return> query, <strong>mysqli_stmt_affected_rows()</strong>
              was called prior to calling <strong>mysqli_stmt_store_result()</strong>.
              
              If the number of affected rows is greater than maximum PHP int value, the number of
              affected rows will be returned as a string value.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_num_rows()</strong>
   * <strong>mysqli_stmt_store_result()</strong>


id: mysqli_stmt_errno
type: function
doc:
<comment>Description:</comment>
  Returns the error code for the most recent statement call
  
  面向对象风格
  
  过程化风格
  
  Returns the error code for the most recently invoked statement function that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>int</info>  An error code value. Zero means no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_error()</strong>
   * <strong>mysqli_stmt_sqlstate()</strong>


id: mysqli_stmt_error
type: function
doc:
<comment>Description:</comment>
  Returns a string description for last statement error
  
  面向对象风格
  
  过程化风格
  
  Returns a string containing the error message for the most recently invoked statement function
  that can succeed or fail.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>string</info>  A string that describes the error. An empty string if no error occurred.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_sqlstate()</strong>


id: mysqli_stmt_error_list
type: function
doc:
<comment>Description:</comment>
  Returns a list of errors from the last statement executed
  
  面向对象风格
  
  过程化风格
  
  Returns an array of errors for the most recently invoked statement function that can succeed or
  fail.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>array</info>  A list of errors, each as an associative <info>array</info> containing the errno, error, and sqlstate.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_error()</strong>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_sqlstate()</strong>


id: mysqli_stmt_field_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of columns in the given statement
  
  面向对象风格
  
  过程化风格
  
  Returns the number of columns in the prepared statement.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>int</info>  Returns an integer representing the number of columns.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_num_rows()</strong>


id: mysqli_stmt_insert_id
type: function
doc:
<comment>Description:</comment>
  Get the ID generated from the previous INSERT operation
  
  面向对象风格
  
  过程化风格
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int|string</info>  


id: mysqli_stmt_param_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of parameters for the given statement
  
  面向对象风格
  
  过程化风格
  
  Returns the number of parameter markers present in the prepared statement.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>int</info>  Returns an integer representing the number of parameters.

<comment>See Also:</comment>
   * <strong>mysqli_prepare()</strong>


id: mysqli_stmt_sqlstate
type: function
doc:
<comment>Description:</comment>
  Returns SQLSTATE error from previous statement operation
  
  面向对象风格
  
  过程化风格
  
  Returns a string containing the SQLSTATE error code for the most recently invoked prepared
  statement function that can succeed or fail. The error code consists of five characters. <return>'00000'</return>
  means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see
  http://dev.mysql.com/doc/mysql/en/error-handling.html.

<comment>Param:</comment>
  <info>mysqli_stmt</info>  <strong>$statement</strong>  仅以过程化样式：由
                           <strong>mysqli_stmt_init()</strong> 返回的 <class>mysqli_stmt</class> 对象。

<comment>Return:</comment>
  <info>string</info>  Returns a string containing the SQLSTATE error code for the last error. The error code
          consists of five characters. <return>'00000'</return> means no error.

<comment>See Also:</comment>
   * <strong>mysqli_stmt_errno()</strong>
   * <strong>mysqli_stmt_error()</strong>


id: mysqli_thread_id
type: function
doc:
<comment>Description:</comment>
  返回当前连接的线程 ID
  
  面向对象风格
  
  过程化风格
  
  <strong>mysqli_thread_id()</strong> 函数返回当前连接的线程 ID，然后可以使用 <strong>mysqli_kill()</strong> 函数将其终止。如果连接中
  断且使用 <strong>mysqli_ping()</strong> 重新连接，线程 ID 会发生改变。所以，仅在需要时获取线程 ID。
  
  线程 ID 是连接的基础上分配的。因此，如果连接断开然后重新建立，将分配新的线程 ID。
  
  要终止正在查询的命令，可以使用 SQL 命令 <return>KILL QUERY processid</return>。

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int</info>  返回当前连接的线程 ID。

<comment>See Also:</comment>
   * <strong>mysqli_kill()</strong>


id: mysqli_warning::next
type: function
doc:
<comment>Description:</comment>
  Fetch next warning
  
  Change warning information to the next warning if possible.
  
  Once the warning has been set to the next warning, new values of properties <return>message</return>, <return>sqlstate</return> and
  <return>errno</return> of <class>mysqli_warning</class> are available.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if next warning was fetched successfully. If there are no more warnings, it
        will return <info>false</info>


id: mysqli_warning_count
type: function
doc:
<comment>Description:</comment>
  Returns the number of warnings from the last query for the given link
  
  面向对象风格
  
  过程化风格
  
  Returns the number of warnings from the last query in the connection.
  
  For retrieving warning messages you can use the SQL command <return>SHOW WARNINGS [limit row_count]</return>.

<comment>Param:</comment>
  <info>mysqli</info>  <strong>$mysql</strong>  仅以过程化样式：由 <strong>mysqli_connect()</strong> 或
                  <strong>mysqli_init()</strong> 返回的 <class>mysqli</class> 对象。

<comment>Return:</comment>
  <info>int</info>  Number of warnings or zero if there are no warnings.

<comment>See Also:</comment>
   * <strong>mysqli_errno()</strong>
   * <strong>mysqli_error()</strong>
   * <strong>mysqli_sqlstate()</strong>


id: natcasesort
type: function
doc:
<comment>Description:</comment>
  用“自然排序”算法对数组进行不区分大小写字母的排序
  
  <strong>natcasesort()</strong> 是 <strong>natsort()</strong> 函数的不区分大小写字母的版本。
  
  本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键／值的关联，这被
  称为“自然排序”。
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。
  
  重置数组中的内部指针，指向第一个元素。

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  输入的数组。

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。

<comment>See Also:</comment>
   * <strong>natsort()</strong>
   * 数组排序函数对比
   * <strong>strnatcmp()</strong>
   * <strong>strnatcasecmp()</strong>


id: natsort
type: function
doc:
<comment>Description:</comment>
  用“自然排序”算法对数组排序
  
  本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键／值的关联，这被
  称为“自然排序”。本算法和通常的计算机字符串排序算法（用于 <strong>sort()</strong>）的区别见下面示例。
  
  如果两个成员完全相同，那么它们将保持原来的顺序。 在 PHP 8.0.0 之前，它们在排序数组中的相对顺序是未
  定义的。
  
  重置数组中的内部指针，指向第一个元素。

<comment>Param:</comment>
  <info>array</info>  <strong>$array</strong>  输入的 array。

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。

<comment>See Also:</comment>
   * <strong>natcasesort()</strong>
   * 数组排序函数对比
   * <strong>strnatcmp()</strong>
   * <strong>strnatcasecmp()</strong>


id: net_get_interfaces
type: function
doc:
<comment>Description:</comment>
  获取网络接口
  
  返回本地机器上的网络接口（适配器）的列举。

<comment>Return:</comment>
  <info>array|false</info>  返回一个关联 <info>array</info>，其中 key 是接口的名称，value 是一个接口属性的关联数组。 或者在失
               败时返回 <info>false</info>。
               
               每个接口关联数组包含： 接口属性名字说明描述 用于描述接口的可选字符串值。 仅限
               Windows。 mac 接口的 MAC 地址的可选字符串值。 仅限 Windows。 mtu 接口的最大传输单位
               （MTU）的整数值。 仅限 Windows。 unicast 关联数组，见下面的单播属性。 up 接口的布尔状
               态（开/关）。
               
               单播属性名字说明flags 整数值。 family 整数值。 address IPv4 或 IPv6 中的地址的字符串
               值。 netmask IPv4 或 IPv6 中的网络掩码的字符串值。


id: next
type: function
doc:
<comment>Description:</comment>
  将数组中的内部指针向前移动一位
      
  
  <strong>next()</strong> 和 <strong>current()</strong> 的行为类似，只有一点区别，在返回值之前将内部指针向前移动一位。这意味着它返回的
  是下一个数组单元的值并将数组指针向前移动了一位。

<comment>Param:</comment>
  <info>array|object</info>  <strong>$array</strong>  受影响的 <info>array</info> 。

<comment>Return:</comment>
  <info>mixed</info>  返回数组内部指针指向的下一个单元的值，或当没有更多单元时返回 <info>false</info>。
         
         此函数可能返回布尔值
         <info>false</info>，但也可能返回等同于 <info>false</info> 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用
         ===
         运算符来测试此函数的返回值。

<comment>See Also:</comment>
   * <strong>current()</strong>
   * <strong>end()</strong>
   * <strong>prev()</strong>
   * <strong>reset()</strong>
   * <strong>each()</strong>


id: ngettext
type: function
doc:
<comment>Description:</comment>
  Plural version of gettext
  
  The plural version of <strong>gettext()</strong>.  Some languages  have more than one form for plural messages
  dependent on the count.

<comment>Param:</comment>
  <info>string</info>  <strong>$singular</strong>  The singular message ID.
  <info>string</info>  <strong>$plural</strong>    The plural message ID.
  <info>int</info>     <strong>$count</strong>     The number (e.g. item count) to determine the translation for the respective
                     grammatical number.

<comment>Return:</comment>
  <info>string</info>  Returns correct plural form of message identified by  <strong>$singular</strong> and <strong>$plural</strong> for count
          <strong>$count</strong>.


id: nl2br
type: function
doc:
<comment>Description:</comment>
  在字符串所有新行之前插入 HTML 换行标记
  
  在字符串 <strong>$string</strong> 所有新行之前插入 '\<br /&gt;' 或 '\<br&gt;'，并返回。

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>     输入字符串。
  <info>bool</info>    <strong>$use_xhtml</strong>  是否使用 XHTML 兼容换行符。

<comment>Return:</comment>
  <info>string</info>  返回调整后的字符串。

<comment>See Also:</comment>
   * <strong>htmlspecialchars()</strong>
   * <strong>htmlentities()</strong>
   * <strong>wordwrap()</strong>
   * <strong>str_replace()</strong>


id: nl_langinfo
type: function
doc:
<comment>Description:</comment>
  Query language and locale information
  
  <strong>nl_langinfo()</strong> is used to access individual elements of the locale categories.  Unlike
  <strong>localeconv()</strong>, which returns all of the elements, <strong>nl_langinfo()</strong> allows you to select any specific
  element.

<comment>Param:</comment>
  <info>int</info>  <strong>$item</strong>  <strong>$item</strong> may be an integer value of the element or the constant name of the element. The
              following is a list of constant names for <strong>$item</strong> that may be used and their
              description. Some of these constants may not be defined or hold no value for certain
              locales. nl_langinfo ConstantsConstantDescriptionLC_TIME Category
              Constants<info>ABDAY_(1-7)</info>Abbreviated name of n-th day of the week.<info>DAY_(1-7)</info>Name of the n-th
              day of the week (DAY_1 = Sunday).<info>ABMON_(1-12)</info>Abbreviated name of the n-th month of the
              year.<info>MON_(1-12)</info>Name of the n-th month of the year.<info>AM_STR</info>String for Ante
              meridian.<info>PM_STR</info>String for Post meridian.<info>D_T_FMT</info>String that can be used as the format
              string for <strong>strftime()</strong> to represent time and date.<info>D_FMT</info>String that can be used as the
              format string for <strong>strftime()</strong> to represent date.<info>T_FMT</info>String that can be used as the
              format string for <strong>strftime()</strong> to represent time.<info>T_FMT_AMPM</info>String that can be used as
              the format string for <strong>strftime()</strong> to represent time in 12-hour format with ante/post
              meridian.<info>ERA</info>Alternate era.<info>ERA_YEAR</info>Year in alternate era format.<info>ERA_D_T_FMT</info>Date and
              time in alternate era format (string can be used in <strong>strftime()</strong>).<info>ERA_D_FMT</info>Date in
              alternate era format (string can be used in <strong>strftime()</strong>).<info>ERA_T_FMT</info>Time in alternate era
              format (string can be used in <strong>strftime()</strong>).LC_MONETARY Category
              Constants<info>INT_CURR_SYMBOL</info>International currency symbol.<info>CURRENCY_SYMBOL</info>Local currency
              symbol.<info>CRNCYSTR</info>Same value as <info>CURRENCY_SYMBOL</info>.<info>MON_DECIMAL_POINT</info>Decimal point
              character.<info>MON_THOUSANDS_SEP</info>Thousands separator (groups of three
              digits).<info>MON_GROUPING</info>Like <return>"grouping"</return> element.<info>POSITIVE_SIGN</info>Sign for positive
              values.<info>NEGATIVE_SIGN</info>Sign for negative values.<info>INT_FRAC_DIGITS</info>International fractional
              digits.<info>FRAC_DIGITS</info>Local fractional digits.<info>P_CS_PRECEDES</info>Returns 1 if <info>CURRENCY_SYMBOL</info>
              precedes a positive value.<info>P_SEP_BY_SPACE</info>Returns 1 if a space separates <info>CURRENCY_SYMBOL</info>
              from a positive value.<info>N_CS_PRECEDES</info>Returns 1 if <info>CURRENCY_SYMBOL</info> precedes a negative
              value.<info>N_SEP_BY_SPACE</info>Returns 1 if a space separates <info>CURRENCY_SYMBOL</info> from a negative
              value.<info>P_SIGN_POSN</info> Returns 0 if parentheses surround the quantity and <info>CURRENCY_SYMBOL</info>.
              Returns 1 if the sign string precedes the quantity and <info>CURRENCY_SYMBOL</info>.  Returns 2 if
              the sign string follows the quantity and <info>CURRENCY_SYMBOL</info>.  Returns 3 if the sign
              string immediately precedes the <info>CURRENCY_SYMBOL</info>.  Returns 4 if the sign string
              immediately follows the <info>CURRENCY_SYMBOL</info>. <info>N_SIGN_POSN</info>LC_NUMERIC Category
              Constants<info>DECIMAL_POINT</info>Decimal point character.<info>RADIXCHAR</info>Same value as
              <info>DECIMAL_POINT</info>.<info>THOUSANDS_SEP</info>Separator character for thousands (groups of three
              digits).<info>THOUSEP</info>Same value as <info>THOUSANDS_SEP</info>.<info>GROUPING</info>LC_MESSAGES Category
              Constants<info>YESEXPR</info>Regex string for matching <return>"yes"</return> input.<info>NOEXPR</info>Regex string for matching
              <return>"no"</return> input.<info>YESSTR</info>Output string for <return>"yes"</return>.<info>NOSTR</info>Output string for <return>"no"</return>.LC_CTYPE Category
              Constants<info>CODESET</info>Return a string with the name of the character encoding.
              
              Returns 0 if parentheses surround the quantity and <info>CURRENCY_SYMBOL</info>.
              
              Returns 1 if the sign string precedes the quantity and <info>CURRENCY_SYMBOL</info>.
              
              Returns 2 if the sign string follows the quantity and <info>CURRENCY_SYMBOL</info>.
              
              Returns 3 if the sign string immediately precedes the <info>CURRENCY_SYMBOL</info>.
              
              Returns 4 if the sign string immediately follows the <info>CURRENCY_SYMBOL</info>.

<comment>Return:</comment>
  <info>string|false</info>  Returns the element as a string, or <info>false</info> if <strong>$item</strong> is not valid.

<comment>See Also:</comment>
   * <strong>setlocale()</strong>
   * <strong>localeconv()</strong>


id: number_format
type: function
doc:
<comment>Description:</comment>
  以千位分隔符方式格式化一个数字
  
  使用四舍五入的规则，将数字格式化为千位分组和小数位（可选）。

<comment>Param:</comment>
  <info>float</info>        <strong>$num</strong>                  要格式化的数字。
  <info>int</info>          <strong>$decimals</strong>             设置小数位数。如果为 <return>0</return>，则从返回值中忽略 <strong>$decimal_separator</strong>。
  <info>string|null</info>  <strong>$decimal_separator</strong>    指定小数点的分隔符。
  <info>string|null</info>  <strong>$thousands_separator</strong>  设置千位分隔符。

<comment>Return:</comment>
  <info>string</info>  <strong>$num</strong> 的格式化版本。

<comment>See Also:</comment>
   * <strong>money_format()</strong>
   * <strong>sprintf()</strong>
   * <strong>printf()</strong>
   * <strong>sscanf()</strong>


id: oauth_get_sbs
type: function
doc:
<comment>Description:</comment>
  生成一个签名字符基串
  
  根据 pecl/oauth 生成一个签名字符基串。

<comment>Param:</comment>
  <info>string</info>  <strong>$http_method</strong>         HTTP 方法。
  <info>string</info>  <strong>$uri</strong>                 将要编码的 URI  。
  <info>array</info>   <strong>$request_parameters</strong>  请求参数的数组。

<comment>Return:</comment>
  <info>string</info>  返回一个签名字符基串。


id: oauth_urlencode
type: function
doc:
<comment>Description:</comment>
  将 URI 编码为 RFC 3986 规范
  
  将 URI 编码为 RFC 3986 规范。

<comment>Param:</comment>
  <info>string</info>  <strong>$uri</strong>  将要编码的 URI 。

<comment>Return:</comment>
  <info>string</info>  返回一个 RFC 3986 规范的编码字符串。


id: ob_clean
type: function
doc:
<comment>Description:</comment>
  清空（擦掉）输出缓冲区
  
  此函数用来丢弃输出缓冲区中的内容。
  
  此函数不会像 <strong>ob_end_clean()</strong> 函数那样销毁输出缓冲区。
  
  输出缓冲必须已被 <strong>ob_start()</strong> 以 PHP_OUTPUT_HANDLER_CLEANABLE 标记启动。否则 <strong>ob_clean()</strong> 不会有效果。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>ob_flush()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_end_clean()</strong>


id: ob_end_clean
type: function
doc:
<comment>Description:</comment>
  清空（擦除）缓冲区并关闭输出缓冲
  
  此函数丢弃最顶层输出缓冲区的内容并关闭这个缓冲区。如果想要进一步处理缓冲区的内容，必须在
  <strong>ob_end_clean()</strong> 之前调用 <strong>ob_get_contents()</strong>，因为当调用 <strong>ob_end_clean()</strong> 时缓冲区内容将被丢弃。
  
  输出缓冲区必须由带有 PHP_OUTPUT_HANDLER_CLEANABLE 和 PHP_OUTPUT_HANDLER_REMOVABLE flag 的
  <strong>ob_start()</strong> 启动。否则 <strong>ob_end_clean()</strong> 将不起作用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 错误的原因首先是，在调用时没有一个起作用的缓冲
        区，或者是因为某些原因缓冲区不能被删除（可能对特殊缓冲区而言）。

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_flush()</strong>


id: ob_end_flush
type: function
doc:
<comment>Description:</comment>
  冲刷出（送出）输出缓冲区内容并关闭缓冲区
  
  这个函数将送出最顶层缓冲区的内容（如果有），并关闭此缓冲区。如果想进一步处理缓冲区中的内容，必须在
  <strong>ob_end_flush()</strong> 之前调用 <strong>ob_get_contents()</strong>，因为在调用 <strong>ob_end_flush()</strong> 后缓冲区内容被丢弃。
  
  输出缓冲区必须带有 PHP_OUTPUT_HANDLER_FLUSHABLE 和 PHP_OUTPUT_HANDLER_REMOVABLE flag 的 <strong>ob_start()</strong>
  启动。否则 <strong>ob_end_flush()</strong> 将不起作用。
  
  这个函数与 <strong>ob_get_flush()</strong> 相似，不同的是 <strong>ob_get_flush()</strong> 会把缓冲区中的内容作为字符串返回。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 错误的原因首先是没有在激活的缓冲区中调用该函数，
        或者是因为某些原因缓冲区不能被删除（可能是特殊缓冲区）。

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_get_flush()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_end_clean()</strong>


id: ob_flush
type: function
doc:
<comment>Description:</comment>
  冲刷出（送出）输出缓冲区中的内容
  
  这个函数将送出缓冲区的内容（如果里边有内容的话）。如果想进一步处理缓冲区中的内容，必须在
  <strong>ob_flush()</strong>之前调用<strong>ob_get_contents()</strong> ，因为在调用<strong>ob_flush()</strong>之后缓冲区内容将被丢弃。
  
  此函数不会销毁输出缓冲区，而像<strong>ob_end_flush()</strong> 函数会销毁缓冲区。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_end_clean()</strong>


id: ob_get_clean
type: function
doc:
<comment>Description:</comment>
  得到当前缓冲区的内容并删除当前输出缓冲区
  
  得到当前缓冲区的内容并删除当前输出缓冲区。
  
  <strong>ob_get_clean()</strong> 实质上是一起执行了 <strong>ob_get_contents()</strong> 和 <strong>ob_end_clean()</strong>。
  
  输出缓冲区必须由带有 PHP_OUTPUT_HANDLER_CLEANABLE 和 PHP_OUTPUT_HANDLER_REMOVABLE flag 的
  <strong>ob_start()</strong> 启动。否则 <strong>ob_get_clean()</strong> 将不起作用。

<comment>Return:</comment>
  <info>string|false</info>  返回输出缓冲区的内容，并结束输出缓冲区。如果输出缓冲区不是活跃的，即返回 <info>false</info> 。

<comment>See Also:</comment>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_start()</strong>


id: ob_get_contents
type: function
doc:
<comment>Description:</comment>
  返回输出缓冲区的内容
  
  只是得到输出缓冲区的内容，但不清除它。

<comment>Return:</comment>
  <info>string|false</info>  此函数返回输出缓冲区的内容，或者如果输出缓冲区无效将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_length()</strong>


id: ob_get_flush
type: function
doc:
<comment>Description:</comment>
  刷新输出缓冲区，将其作为字符串返回并关闭输出缓冲区
  
  <strong>ob_get_flush()</strong> 刷新输出缓冲区，将其作为字符串返回并关闭输出缓冲。
  
  输出缓冲区比由带有 PHP_OUTPUT_HANDLER_FLUSHABLE flag 的 <strong>ob_start()</strong> 启动。否则 <strong>ob_get_flush()</strong> 将不
  起作用。
  
  此函数与 <strong>ob_end_flush()</strong> 相似，不同的是此函数会把缓冲区作为字符串返回。

<comment>Return:</comment>
  <info>string|false</info>  返回输出缓冲区的内容或者没有缓冲区激活时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>ob_end_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_list_handlers()</strong>


id: ob_get_length
type: function
doc:
<comment>Description:</comment>
  返回输出缓冲区内容的长度
  
  将返回输出缓冲区内容的长度，单位为字节。

<comment>Return:</comment>
  <info>int|false</info>  返回输出缓冲区内容的长度，单位为字节；如果缓冲区无效，则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>


id: ob_get_level
type: function
doc:
<comment>Description:</comment>
  返回输出缓冲机制的嵌套级别
  
  返回输出缓冲机制的嵌套级别。

<comment>Return:</comment>
  <info>int</info>  返回嵌套的输出缓冲处理程序的级别；或者是，如果输出缓冲区不起作用，返回零。

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_get_contents()</strong>


id: ob_get_status
type: function
doc:
<comment>Description:</comment>
  得到所有输出缓冲区的状态
  
  <strong>ob_get_status()</strong> 返回最顶层输出缓冲区的状态信息；或者如果 <strong>$full_status</strong> 设为 <info>true</info>，返回所有有效的输
  出缓冲级别。

<comment>Param:</comment>
  <info>bool</info>  <strong>$full_status</strong>  设为 <info>true</info> 返回所有有效的输出缓冲区级别的状态信息。如果设为 <info>false</info> 或者没有设
                      置，仅返回最顶层输出缓冲区的状态信息。

<comment>Return:</comment>
  <info>array</info>  如果调用时没有 <strong>$full_status</strong> 参数，或者 <strong>$full_status</strong> = <info>false</info> 将返回一个包含下面元素的简单数
         组：  2 [type] => 0 [status] => 0 [name] => URL-Rewriter [del] => 1
         )
         ]]> <strong>ob_get_status()</strong> 的简单结果KeyValuelevel输出嵌套级别type<return>0</return>（内部处理程序）或者 <return>1</return>（用户提
         供的处理程序）status<return>PHP_OUTPUT_HANDLER_START</return> (0), <return>PHP_OUTPUT_HANDLER_CONT</return> (1) or
         <return>PHP_OUTPUT_HANDLER_END</return> (2) 三个之一name起作用的输出处理程序的名字，或者是默认的输出处理程序
         的名字（如果没有设置的话）del由<strong>ob_start()</strong>设置的删除标签（Erase-flag）
         
         如果调用时<strong>$full_status</strong> = <info>true</info>，将返回一个数组，该数组的每个元素包含有效的输出缓冲区级别的状
         态信息。缓冲区的级别数用来当作数组的第一维数；每个元素自身是另一个数组，它持有该有效输出级
         别的状态信息。  Array ( [chunk_size] => 0 [size] => 40960 [block_size] => 10240 [type] => 1
         [status] => 0 [name] => default output handler [del] => 1 )
          [1] => Array ( [chunk_size] => 0 [size] => 40960 [block_size] => 10240 [type] => 0
         [buffer_size] => 0 [status] => 0 [name] => URL-Rewriter [del] => 1 )
         
         )
         ]]>
         
         完整的输出包含以下附加元素： 完整的<strong>ob_get_status()</strong> 结果KeyValuechunk_size由 <strong>ob_start()</strong>设置
         的Chunk size值size...blocksize...

<comment>See Also:</comment>
   * <strong>ob_get_level()</strong>
   * <strong>ob_list_handlers()</strong>


id: ob_gzhandler
type: function
doc:
<comment>Description:</comment>
  ob_start 回调函数压缩输出缓冲区
  
  <strong>ob_gzhandler()</strong> 目的用作 <strong>ob_start()</strong> 的回调函数，以便将 gz 编码的数据发送到支持网页压缩的 Web 浏览
  器。在 <strong>ob_gzhandler()</strong> 实际发送压缩数据之前，该函数会确定浏览器接受哪种类型的内容编码（"gzip"、
  "deflate" 或都不接受），然后相应的返回输出。支持所有发送正确头消息以表明接受压缩网页的浏览器。如果
  浏览器不支持压缩页面，则函数返回 <info>false</info>。

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>   
  <info>int</info>     <strong>$flags</strong>  

<comment>Return:</comment>
  <info>string|false</info>  

<comment>See Also:</comment>
   * <strong>ob_start()</strong>
   * <strong>ob_end_flush()</strong>


id: ob_iconv_handler
type: function
doc:
<comment>Description:</comment>
  以输出缓冲处理程序转换字符编码
  
  将字符编码从 <strong>$internal_encoding</strong> 转换到 <strong>$output_encoding</strong>。
  
  <strong>$internal_encoding</strong> 和 <strong>$output_encoding</strong> 应当在 php.ini 文件或 <strong>iconv_set_encoding()</strong> 中定义。

<comment>Return:</comment>
  <info>string</info>  关于处理程序返回值的信息，参见 <strong>ob_start()</strong>。

<comment>See Also:</comment>
   * <strong>iconv_get_encoding()</strong>
   * <strong>iconv_set_encoding()</strong>
   * 输出控制函数


id: ob_implicit_flush
type: function
doc:
<comment>Description:</comment>
  打开/关闭绝对刷送
  
  <strong>ob_implicit_flush()</strong> 将打开或关闭绝对（隐式）刷送。绝对（隐式）刷送将导致在每次输出调用后有一次刷送
  操作，以便不再需要对 <strong>flush()</strong> 的显式调用。

<comment>Param:</comment>
  <info>bool</info>  <strong>$enable</strong>  设为 <info>true</info> 打开绝对刷送，反之是  <info>false</info>。

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * <strong>flush()</strong>
   * <strong>ob_start()</strong>
   * <strong>ob_end_flush()</strong>


id: ob_list_handlers
type: function
doc:
<comment>Description:</comment>
  列出所有使用的输出处理程序
  
  列出所有使用的输出处理程序。

<comment>Return:</comment>
  <info>array</info>  此函数将返回一个数组，数组元素是正在使用中输出处理程序名（如果存在的输出处理程序的话）。如
         果启用了 output_buffering 或者在 <strong>ob_start()</strong> 中创建了一个匿名函数，<strong>ob_list_handlers()</strong> 将返回
         “default output handler”。

<comment>See Also:</comment>
   * <strong>ob_end_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_get_flush()</strong>
   * <strong>ob_start()</strong>


id: ob_start
type: function
doc:
<comment>Description:</comment>
  打开输出控制缓冲
  
  此函数将打开输出缓冲。当输出缓冲激活后，脚本将不会输出内容（消息头除外），相反需要输出的内容被存储
  在内部缓冲区中。
  
  内部缓冲区的内容可以用 <strong>ob_get_contents()</strong> 复制到字符串变量中。想要输出存储在内部缓冲区中的内容，使
  用 <strong>ob_end_flush()</strong> 函数。另外，使用 <strong>ob_end_clean()</strong> 函数会静默丢弃掉缓冲区的内容。
  
  当有正在调用的回调函数时，一些 Web 服务器（例如 Apache）会改变脚本的工作目录。可以在回调函数中再把
  它改回来，例如 <return>chdir(dirname($_SERVER['SCRIPT_FILENAME']))</return>。
  
  输出缓冲区是可堆叠的，这就意味着，当有一个 <strong>ob_start()</strong> 是活跃的时，可以调用另一个 <strong>ob_start()</strong>。只要
  确保正确调用了 <strong>ob_end_flush()</strong> 恰当的次数即可。如果有多重输出回调函数是活跃的，输出内容会一直按嵌套
  的顺序依次过滤。
  
  如果脚本结束时输出缓存仍处于激活状态，PHP 会自动输出内容。

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>    可选参数 <strong>$callback</strong>  函数可以被指定。此函数把一个字符串当作参数并返回一个字
                         符串。当输出缓冲区被（<strong>ob_flush()</strong>、<strong>ob_clean()</strong> 或者相似的函数）冲刷（送出）或
                         者被清洗的时候；或者在请求结束之际输出缓冲区内容被冲刷到浏览器的时候该函数
                         将会被调用。当调用 <strong>$callback</strong> 时，它将收到输出缓冲区的内容作为参数并预期返回
                         一个新的输出缓冲区作为结果，这个新返回的输出缓冲区内容将被送到浏览器。如果
                         这个 <strong>$callback</strong> 不是一个可以调用的函数，此函数会返回 <info>false</info>。以下是回调签名：
                         
                         <info>string</info>handler<info>string</info><strong>$buffer</strong><info>int</info><strong>$phase</strong><strong>$buffer</strong> 输出缓冲区中的内容。 <strong>$phase</strong> 比特
                         掩码 <info>PHP_OUTPUT_HANDLER_*</info> 常量。
                         
                         输出缓冲区中的内容。
                         
                         比特掩码 <info>PHP_OUTPUT_HANDLER_*</info> 常量。
                         
                         如果 <strong>$callback</strong> 返回 <info>false</info> ，其原来的输入内容被直接送到浏览器。
                         
                         这个参数 <strong>$callback</strong> 可以通过直接给一个 <info>null</info> 值而避开。
                         
                         <strong>ob_end_clean()</strong>, <strong>ob_end_flush()</strong>, <strong>ob_clean()</strong>, <strong>ob_flush()</strong> 和 <strong>ob_start()</strong> 不能从
                         一个回调函数中调用。 如果从回调函数中调用了它们，产生的行为是不明确的。 如
                         果想要删除缓冲区的内容，从回调函数中返回一个"" (空字符串)。 更不能从一个回
                         调函数中使用像<return>print_r($expression, true)</return>  或<return>highlight_file($filename, true)</return>
                         一样的输出缓冲函数。
                         
                         <strong>ob_gzhandler()</strong> 函数的存在有助于将 gz 编码的数据发送到支持压缩网页的 Web 浏
                         览器。<strong>ob_gzhandler()</strong> 确定浏览器将接受哪种类型的内容编码并相应的返回输出。
  <info>string</info>    <strong>$buffer</strong>      输出缓冲区中的内容。
  <info>int</info>       <strong>$phase</strong>       比特掩码 <info>PHP_OUTPUT_HANDLER_*</info> 常量。
  <info>int</info>       <strong>$chunk_size</strong>  如果可选参数 <strong>$chunk_size</strong> 被赋值了，在任何一个能引起缓冲区的长度等于 或超过
                         <strong>$chunk_size</strong> 的输出操作后，缓冲区都会被刷送。 默认值 <return>0</return> 意味着函数仅在最后被
                         调用。
  <info>int</info>       <strong>$flags</strong>       <strong>$flags</strong> 参数代表了一个掩码位，用来控制对缓冲区的操作。默认是允许清理、刷新和
                         移除输出缓冲区，可以通过 <info>PHP_OUTPUT_HANDLER_CLEANABLE</info> |
                         <info>PHP_OUTPUT_HANDLER_FLUSHABLE</info> | <info>PHP_OUTPUT_HANDLER_REMOVABLE</info> 显式设置或使用
                         <info>PHP_OUTPUT_HANDLER_STDFLAGS</info> 作为简写。
                         
                         每个标志都控制着对一组功能的访问，详细介绍如下： 常量函数
                         <info>PHP_OUTPUT_HANDLER_CLEANABLE</info><strong>ob_clean()</strong>, <strong>ob_end_clean()</strong> 和 <strong>ob_get_clean()</strong>。
                         <info>PHP_OUTPUT_HANDLER_FLUSHABLE</info><strong>ob_end_flush()</strong>, <strong>ob_flush()</strong> 和 <strong>ob_get_flush()</strong>。
                         <info>PHP_OUTPUT_HANDLER_REMOVABLE</info><strong>ob_end_clean()</strong>, <strong>ob_end_flush()</strong> 和
                         <strong>ob_get_flush()</strong>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>ob_get_contents()</strong>
   * <strong>ob_end_clean()</strong>
   * <strong>ob_end_flush()</strong>
   * <strong>ob_implicit_flush()</strong>
   * <strong>ob_gzhandler()</strong>
   * <strong>ob_iconv_handler()</strong>
   * <strong>mb_output_handler()</strong>
   * <strong>ob_tidyhandler()</strong>


id: ob_tidyhandler
type: function
doc:
<comment>Description:</comment>
  ob_start callback function to repair the buffer
  
  Callback function for <strong>ob_start()</strong> to repair the buffer.

<comment>Param:</comment>
  <info>string</info>  <strong>$input</strong>  The buffer.
  <info>int</info>     <strong>$mode</strong>   The buffer mode.

<comment>Return:</comment>
  <info>string</info>  Returns the modified buffer.

<comment>See Also:</comment>
   * <strong>ob_start()</strong>


id: oci_bind_array_by_name
type: function
doc:
<comment>Description:</comment>
  Binds a PHP array to an Oracle PL/SQL array parameter
  
  Binds the PHP array <strong>$var</strong> to the Oracle placeholder <strong>$param</strong>, which points to an Oracle PL/SQL array.
  Whether it will be used for input or output will be determined at run-time.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>         A valid OCI statement identifier.
  <info>string</info>    <strong>$param</strong>             The Oracle placeholder.
  <info>array</info>     <strong>$var</strong>               An array.
  <info>int</info>       <strong>$max_array_length</strong>  Sets the maximum length both for incoming and result arrays.
  <info>int</info>       <strong>$max_item_length</strong>   Sets maximum length for array items. If not specified or equals to
                               -1, <strong>oci_bind_array_by_name()</strong> will find the longest element in the
                               incoming array and will use it as the maximum length.
  <info>int</info>       <strong>$type</strong>              Should be used to set the type of PL/SQL array items. See list of
                               available types below:
                               
                               <info>SQLT_NUM</info> - for arrays of NUMBER. <info>SQLT_INT</info> - for arrays of INTEGER
                               (Note: INTEGER it is actually a synonym for NUMBER(38), but <info>SQLT_NUM</info>
                               type won't work in this case even though they are synonyms). <info>SQLT_FLT</info>
                               - for arrays of FLOAT. <info>SQLT_AFC</info> - for arrays of CHAR. <info>SQLT_CHR</info> - for
                               arrays of VARCHAR2. <info>SQLT_VCS</info> - for arrays of VARCHAR. <info>SQLT_AVC</info> - for
                               arrays of CHARZ. <info>SQLT_STR</info> - for arrays of STRING. <info>SQLT_LVC</info> - for
                               arrays of LONG VARCHAR. <info>SQLT_ODT</info> - for arrays of DATE.
                               
                               <info>SQLT_NUM</info> - for arrays of NUMBER.
                               
                               <info>SQLT_INT</info> - for arrays of INTEGER (Note: INTEGER it is actually a
                               synonym for NUMBER(38), but <info>SQLT_NUM</info> type won't work in this case
                               even though they are synonyms).
                               
                               <info>SQLT_FLT</info> - for arrays of FLOAT.
                               
                               <info>SQLT_AFC</info> - for arrays of CHAR.
                               
                               <info>SQLT_CHR</info> - for arrays of VARCHAR2.
                               
                               <info>SQLT_VCS</info> - for arrays of VARCHAR.
                               
                               <info>SQLT_AVC</info> - for arrays of CHARZ.
                               
                               <info>SQLT_STR</info> - for arrays of STRING.
                               
                               <info>SQLT_LVC</info> - for arrays of LONG VARCHAR.
                               
                               <info>SQLT_ODT</info> - for arrays of DATE.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: oci_bind_by_name
type: function
doc:
<comment>Description:</comment>
  绑定 PHP 变量到 Oracle 位置标志符
  
  将 PHP 变量 <strong>$var</strong> 绑定到 Oracle 位置占位符 <strong>$param</strong>。绑定对 Oracle 数据库性能很重要，同时也是避免 SQL
  注入安全问题的一种方式。
  
  绑定允许数据库重用语句上下文和以前执行语句的缓存，即使另一个用户或进程最初（originally）执行它也是
  如此。绑定减少了 SQL 注入问题，因为与绑定变量关联的数据永远不会被视为 SQL 语句的一部分。不需要引用
  或转义。
  
  已经绑定的 PHP 变量可以改变，语句重新执行，而不需要重新解析语句或重新绑定。
  
  在 Oracle 中，绑定变量通常分为用于传递到数据库的值的 <return>IN</return> 绑定和用于返回给 PHP 的值的 <return>OUT</return> 绑定。绑定
  变量可以同时为 <return>IN</return> 和 <return>OUT</return>。绑定变量是用于输入还是输出是在运行时确定的。
  
  使用 <return>OUT</return> 绑定时必须指定 <strong>$max_length</strong> 以便 PHP 分配足够的内存来保存返回值。
  
  对于 <return>IN</return> 绑定，如果使用不同的 PHP 变量值多次重新执行该语句，建议设置 <strong>$max_length</strong> 长度。否则 Oracle
  可能会将数据截断为初始 PHP 变量值的长度。如果不知道最大长度是多少，则在每次调用 <strong>oci_execute()</strong> 之前
  使用当前数据大小重新调用 <strong>oci_bind_by_name()</strong>。绑定不必要的大长度将对数据库中的进程内存产生影响。
  
  绑定调用告诉 Oracle 从哪个内存地址读取数据。对于 <return>IN</return> 绑定，调用 <strong>oci_execute()</strong> 时地址需要包含有效数
  据。这意味着变量绑定必须保留在作用域内直到执行。否则，可能会出现意外结果或错误，例如“ORA-01460：未
  实现或不合理的转换请求”。对于 <return>OUT</return> 绑定，一个问题是没有在 PHP 变量中设置值。
  
  对于重复执行的语句，永远不变的绑定值可能会降低 Oracle 优化器选择最佳语句执行计划的能力。很少重新执
  行的长时间运行的语句可能无法从绑定中获益。但是，在这两种情况下，绑定可能比将字符串连接到 SQL 语句
  中更安全，因为如果连接未过滤的用户文本，这可能会带来安全风险。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>   有效的 OCI8 语句标识符。
  <info>string</info>    <strong>$param</strong>       语句中使用以冒号为前缀的绑定变量占位符。冒号在 <strong>$param</strong> 中是可选的。Oracle 不
                         使用问号作为占位符。
  <info>mixed</info>     <strong>$var</strong>         与 <strong>$param</strong> 关联的 PHP 变量
  <info>int</info>       <strong>$max_length</strong>  设置数据的最大长度。如果将其设置为 -1，则此函数将使用 <strong>$var</strong> 的当前长度来设置
                         最大长度。在这种情况下，<strong>$var</strong> 必须存在并且在调用 <strong>oci_bind_by_name()</strong> 时包含数
                         据。
  <info>int</info>       <strong>$type</strong>        Oracle 处理数据的数据类型。使用的默认 <strong>$type</strong> 是 <info>SQLT_CHR</info>。可能的话，Oracle
                         将在此类型和数据库列（或 PL/SQL 变量类型）之间转换数据。
                         
                         如果要绑定抽象数据类型（LOB/ROWID/BFILE），需要先用 <strong>oci_new_descriptor()</strong> 函
                         数分配空间。<strong>$length</strong> 没有用于抽象数据类型，应被设为 -1。
                         
                         <strong>$type</strong> 的可能值为： <info>SQLT_BFILEE</info> 或 <info>OCI_B_BFILE</info>  对应 BFILE； <info>SQLT_CFILEE</info> 或
                         <info>OCI_B_CFILEE</info> 对应 CFILE； <info>SQLT_CLOB</info> 或 <info>OCI_B_CLOB</info> 对应 CLOB； <info>SQLT_BLOB</info> 或
                         <info>OCI_B_BLOB</info> 对应 BLOB； <info>SQLT_RDD</info> 或 <info>OCI_B_ROWID</info> 对应 ROWID； <info>SQLT_NTY</info> 或
                         <info>OCI_B_NTY</info> 对应命名数据类型； <info>SQLT_INT</info> 或 <info>OCI_B_INT</info> 对应整型； <info>SQLT_CHR</info> 对应
                         VARCHAR； <info>SQLT_BIN</info> 或 <info>OCI_B_BIN</info> 对应 RAW 列； <info>SQLT_LNG</info> 对应 LONG 列；
                         <info>SQLT_LBI</info> 对应 LONG RAW 列； <info>SQLT_RSET</info> 对应使用 <strong>oci_new_cursor()</strong> 创建的游
                         标； <info>SQLT_BOL</info> 或 <info>OCI_B_BOL</info> 对应 PL/SQL BOOLEAN（需要 Oracle Database 12c）
                         
                         <info>SQLT_BFILEE</info> 或 <info>OCI_B_BFILE</info>  对应 BFILE；
                         
                         <info>SQLT_CFILEE</info> 或 <info>OCI_B_CFILEE</info> 对应 CFILE；
                         
                         <info>SQLT_CLOB</info> 或 <info>OCI_B_CLOB</info> 对应 CLOB；
                         
                         <info>SQLT_BLOB</info> 或 <info>OCI_B_BLOB</info> 对应 BLOB；
                         
                         <info>SQLT_RDD</info> 或 <info>OCI_B_ROWID</info> 对应 ROWID；
                         
                         <info>SQLT_NTY</info> 或 <info>OCI_B_NTY</info> 对应命名数据类型；
                         
                         <info>SQLT_INT</info> 或 <info>OCI_B_INT</info> 对应整型；
                         
                         <info>SQLT_CHR</info> 对应 VARCHAR；
                         
                         <info>SQLT_BIN</info> 或 <info>OCI_B_BIN</info> 对应 RAW 列；
                         
                         <info>SQLT_LNG</info> 对应 LONG 列；
                         
                         <info>SQLT_LBI</info> 对应 LONG RAW 列；
                         
                         <info>SQLT_RSET</info> 对应使用 <strong>oci_new_cursor()</strong> 创建的游标；
                         
                         <info>SQLT_BOL</info> 或 <info>OCI_B_BOL</info> 对应 PL/SQL BOOLEAN（需要 Oracle Database 12c）

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_bind_array_by_name()</strong>
   * <strong>oci_parse()</strong>


id: oci_cancel
type: function
doc:
<comment>Description:</comment>
  中断游标读取数据
  
  <strong>oci_cancel()</strong> 使一个游标无效，释放所有与之关联的资源并取消了从中读取的能力。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  OCI 语句。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: oci_client_version
type: function
doc:
<comment>Description:</comment>
  Returns the Oracle client library version
  
  Returns a string containing the version number of the Oracle C client library that PHP is linked
  with.

<comment>Return:</comment>
  <info>string</info>  Returns the version number as a <info>string</info>.

<comment>See Also:</comment>
   * <strong>oci_server_version()</strong>


id: oci_close
type: function
doc:
<comment>Description:</comment>
  关闭 Oracle 连接
  
  取消 <strong>$connection</strong>。如果没有其他资源正在使用底层数据库连接并且它是使用 <strong>oci_connect()</strong> 或
  <strong>oci_new_connect()</strong> 创建的，则关闭底层数据库连接。
  
  建议关闭不再需要的连接，因为这可以让其他用户使用数据库资源。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  <strong>oci_connect()</strong>、<strong>oci_pconnect()</strong> 或 <strong>oci_new_connect()</strong> 返回的 Oracle 连接标识
                         符。

<comment>Return:</comment>
  <info>bool|null</info>  启用 oci8.old_oci_close_semantics 时返回 <info>null</info>，否则返回 <info>true</info>。

<comment>See Also:</comment>
   * <strong>oci_connect()</strong>
   * <strong>oci_free_statement()</strong>


id: oci_commit
type: function
doc:
<comment>Description:</comment>
  提交未完成的数据库事务
  
  为 Oracle <strong>$connection</strong> 提交未完成的事务。提交结束当前事务并使所有更改永久化。释放所有持有的锁。
  
  当使用 <info>OCI_NO_AUTO_COMMIT</info> flag 通过 <strong>oci_execute()</strong> 执行第一个更改数据的 SQL 语句时，事务开始。其他
  语句所做的进一步数据更改成为同一事务的一部分。在事务提交或回滚之前，事务中所做的数据更改是临时的。
  在提交之前，数据库的其他用户将看不到更改。
  
  插入或更新数据时，出于关系数据一致性和性能原因，建议使用事务。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  <strong>oci_connect()</strong>、<strong>oci_pconnect()</strong> 或 <strong>oci_new_connect()</strong> 返回的 Oracle 连接标识
                         符。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_execute()</strong>
   * <strong>oci_rollback()</strong>


id: oci_connect
type: function
doc:
<comment>Description:</comment>
  建立一个到 Oracle 服务器的连接
  
  返回大多数其他 OCI8 操作所需的连接标识符。
  
  为了提高性能，大多数应用程序应该使用 <strong>oci_pconnect()</strong> 的持久连接而不是 <strong>oci_connect()</strong>。有关连接管理和
  连接池的基本信息，请参阅连接处理。
  
  使用相同参数对 <strong>oci_connect()</strong> 的第二次和后续调用将返回从第一次调用返回的连接句柄。这意味着一个句柄
  中的事务也在其他句柄中，因为它们使用相同的底层数据库连接。如果两个句柄需要在事务上相互隔离，请改用
  <strong>oci_new_connect()</strong>。

<comment>Param:</comment>
  <info>string</info>       <strong>$username</strong>           Oracle 用户名。
  <info>string</info>       <strong>$password</strong>           <strong>$username</strong> 的密码。
  <info>string|null</info>  <strong>$connection_string</strong>  包含要连接的
                                   <return>Oracle 实例</return>。可以是 Easy Connect 串，或是
                                   tnsnames.ora 文件中的连接名，或是本地 Oracle 实例名。
                                   
                                   如果不指定或者为 <info>null</info>，PHP 使用环境变量来确定连接的 <return>Oracle 实例</return>，
                                   诸如 <info>TWO_TASK</info>（Linux 下）或  <info>LOCAL</info>（Windows 下）与 <info>ORACLE_SID</info>
                                   等。
                                   
                                   要使用 Easy Connect 命名方法，PHP 必须与 Oracle 10g 或更高版本的
                                   客户端库进行链接。Oracle 10g 的 Easy Connect 串格式：
                                   [//]host_name[:port][/service_name]。Oracle 11g 则为：
                                   [//]host_name[:port][/service_name][:server_type][/instance_name]。
                                    在 Oracle 19c 加入类更多选项，例如 timeout 和 keep-alive 设置。
                                   请参考 Oracle 文档。 服务名可在数据库服务器机器上运行 Oracle 实用
                                   程序 <return>lsnrctl status</return> 找到。
                                   
                                   tnsnames.ora 文件可在 Oracle Net 查找路径中，此路径包括
                                   /your/path/to/instantclient/network/admin、
                                   $ORACLE_HOME/network/admin 、/etc。 另一种方法是设置 <return>TNS_ADMIN</return> 以
                                   便通过 $TNS_ADMIN/tnsnames.ora 来读取。表确认 web 守护进程可读取
                                   此文件。
  <info>string</info>       <strong>$encoding</strong>           使用 Oracle
                                   客户端库来确定字符集。字符集不需要与数据库的字符集相匹配。如果不
                                   匹配，Oracle
                                   会尽可能地将数据从数据库字符集进行转换。因为依赖于字符集，可能不
                                   能给出可用的结果。转换也增加一些时间开销。
                                   
                                   如果不指定，Oracle 客户端用 <info>NLS_LANG</info> 环境变量来决定字符集。
                                   
                                   传递此参数可减少连接时间。
  <info>int</info>          <strong>$session_mode</strong>       此参数在 PHP 5（PECL OCI8
                                   1.1）版本开始可用，并收受下列值：<info>OCI_DEFAULT</info>，<info>OCI_SYSOPER</info>
                                   和 <info>OCI_SYSDBA</info>。如为
                                   <info>OCI_SYSOPER</info> 或 <info>OCI_SYSDBA</info>
                                   其中之一，此函数将会使用外部的证书建立有特权的连接。有特权的连接
                                   默认是禁用的。需要将
                                   oci8.privileged_connect
                                   设为 <return>On</return> 来启用。
                                   
                                   PHP 5.3（PECL OCI8 1.3.4）引进了 <info>OCI_CRED_EXT</info> 模式值。使用外部或
                                   操作系统认证必需在 Oracle 数据库中进行配置。<info>OCI_CRED_EXT</info> 标志只可
                                   用于用户为 "/"，密码为空的情况。oci8.privileged_connect 可为 <return>On</return>
                                   或 <return>Off</return>。
                                   
                                   <info>OCI_CRED_EXT</info> 可与 <info>OCI_SYSOPER</info> 或 <info>OCI_SYSDBA</info> 模式组合使用。
                                   
                                   <info>OCI_CRED_EXT</info> 由于安全的原因不支持 Windows 系统。

<comment>Return:</comment>
  <info>resource|false</info>  返回连接标识符或出错时为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_pconnect()</strong>
   * <strong>oci_new_connect()</strong>
   * <strong>oci_close()</strong>


id: oci_define_by_name
type: function
doc:
<comment>Description:</comment>
  将 PHP 变量与查询读取的列相关联
  
  使用 <strong>oci_fetch()</strong> 将 PHP 变量与查询读取的列相关联。
  
  必须在执行 <strong>oci_execute()</strong> 之前调用 <strong>oci_define_by_name()</strong>。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。
  <info>string</info>    <strong>$column</strong>     查询中使用的列名。
                        
                        对 Oracle 中默认、不区分大小写的列名使用大写字母。对区分大小写的列名使用准确
                        的列名大小写。
  <info>mixed</info>     <strong>$var</strong>        将包含返回列的值的 PHP 变量。
  <info>int</info>       <strong>$type</strong>       要返回的数据类型。一般不需要。注意不会执行 Oracle 样式的数据转换。例如将会忽
                        略 <return>SQLT_INT</return>，返回的数据类型仍为 <return>SQLT_CHR</return>。
                        
                        可以选择使用 <strong>oci_new_descriptor()</strong> 来分配 LOB/ROWID/BFILE 描述符。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_new_descriptor()</strong>


id: oci_error
type: function
doc:
<comment>Description:</comment>
  返回最后发现的错误
  
  返回最后发现的错误。
  
  发生错误后应立即调用该函数。错误会由成功的语句清除。

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$connection_or_statement</strong>  对于大多数错误，<strong>$connection_or_statement</strong> 是传递给失败函数
                                           以供调用的资源句柄。对于 <strong>oci_connect()</strong>、<strong>oci_new_connect()</strong>
                                           或 <strong>oci_pconnect()</strong> 的连接错误，应传递 <info>null</info>。

<comment>Return:</comment>
  <info>array|false</info>  如果没有发现错误，<strong>oci_error()</strong> 返回 <info>false</info>。否则，<strong>oci_error()</strong> 将错误信息作为关联数组返
               回。
               
               <strong>oci_error()</strong> 数组说明数组键类型说明<return>code</return><info>int</info> Oracle 错误编号。 <return>message</return><info>string</info> Oracle 错误
               文本。 <return>offset</return><info>int</info> SQL 语句中错误的字节位置。如果没有语句，则为 <return>0</return> <return>sqltext</return><info>string</info> SQL 语
               句文本。如果没有语句，则是空字符串。


id: oci_execute
type: function
doc:
<comment>Description:</comment>
  执行语句
  
  执行先前从 <strong>oci_parse()</strong> 返回的 <strong>$statement</strong>。
  
  执行后，像 <return>INSERT</return> 这样的语句默认会将数据提交到数据库中。对于像 <return>SELECT</return> 这样的语句，执行查询的逻辑。
  随后可以使用 <strong>oci_fetch_array()</strong> 等函数在 PHP 中获取查询结果。
  
  每个已解析的语句可能会执行多次，节省了重新解析的成本。当使用 <strong>oci_bind_by_name()</strong> 绑定数据时，这通常
  用于 <return>INSERT</return> 语句。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>int</info>       <strong>$mode</strong>       可选的第二个参数可以是以下常量之一： 执行模式常量说明<info>OCI_COMMIT_ON_SUCCESS</info>当
                        语句成功时，自动提交此连接的所有未完成更改。这是默认设置。
                        <info>OCI_DESCRIBE_ONLY</info>使查询元数据可用于 <strong>oci_field_name()</strong> 等函数，但不创建结果
                        集。任何后续的读取调用（例如 <strong>oci_fetch_array()</strong>）都将失败。
                        <info>OCI_NO_AUTO_COMMIT</info>不要自动提交更改。
                        
                        使用 <info>OCI_NO_AUTO_COMMIT</info> 模式启动或继续事务。当连接关闭或脚本结束时，事务会自
                        动回滚。显式调用 <strong>oci_commit()</strong> 来提交事务，或调用 <strong>oci_rollback()</strong> 来中止它。
                        
                        插入或更新数据时，出于关系数据一致性和性能原因，建议使用事务。
                        
                        If <info>OCI_NO_AUTO_COMMIT</info> mode is used for any statement including queries, and
                        <strong>oci_commit()</strong> or <strong>oci_rollback()</strong> is not subsequently called, then OCI8 will
                        perform a rollback at the end of the script even if no data was changed.  To
                        avoid an unnecessary rollback, many scripts do not use <info>OCI_NO_AUTO_COMMIT</info>
                        mode for queries or PL/SQL.  Be careful to ensure the appropriate
                        transactional consistency for the application when using <strong>oci_execute()</strong> with
                        different modes in the same script.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_parse()</strong>


id: oci_fetch
type: function
doc:
<comment>Description:</comment>
  从查询中读取下一行到内部缓冲区
  
  从查询中读取下一行到内部缓冲区，可以使用 <strong>oci_result()</strong> 访问，也可以使用之前用 <strong>oci_define_by_name()</strong>
  定义的变量访问。
  
  有关读取数据的通用信息，请参阅 <strong>oci_fetch_array()</strong>。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>，如果 <strong>$statement</strong> 中没有更多行，则为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_define_by_name()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_result()</strong>


id: oci_fetch_all
type: function
doc:
<comment>Description:</comment>
  从查询中读取多行到二维数组中
  
  在查询中的读取多行到二维数组中。默认情况下，返回所有行。
  
  对于使用 <strong>oci_execute()</strong> 执行的每个查询，此函数只能调用一次。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。
  <info>array</info>     <strong>$output</strong>     包含返回行的变量。
                        
                        LOB 列作为字符串返回，其中 Oracle 支持转换。
                        
                        有关如何读取数据和类型的更多信息，请参见 <strong>oci_fetch_array()</strong>。
  <info>int</info>       <strong>$offset</strong>     读取结果时要丢弃的初始行数。默认值为 0，因此返回第一行。
  <info>int</info>       <strong>$limit</strong>      要返回的行数。默认值为 -1，表示返回从 <strong>$offset</strong> + 1 开始的所有行。
  <info>int</info>       <strong>$flags</strong>      参数 <strong>$flags</strong> 表示数组结构以及是否应使用关联数组。 <strong>oci_fetch_all()</strong> 数组结构模
                        式常量说明<info>OCI_FETCHSTATEMENT_BY_ROW</info>外部数组将包含每个查询行的子数组。
                        <info>OCI_FETCHSTATEMENT_BY_COLUMN</info>外部数组将包含每个查询列的子数组。这是默认设置。
                        
                        数组可以按列标头或数字索引。只会返回一种索引模式。 <strong>oci_fetch_all()</strong> 数组索引
                        模式常量说明<info>OCI_NUM</info>数字索引用于每一列的数组。<info>OCI_ASSOC</info>关联索引用于每一列的数
                        组。这是默认设置。
                        
                        使用加法运算符“+”选择数组结构和索引模式的组合。
                        
                        Oracle's default, non-case sensitive column names will have uppercase array
                        keys.  Case-sensitive column names will have array keys using the exact
                        column case. Use <strong>var_dump()</strong> on <strong>$output</strong> to verify the appropriate case to use
                        for each query.
                        
                        具有多个同名列的查询应使用列别名。否则只有一列会出现在关联数组中。

<comment>Return:</comment>
  <info>int</info>  返回 <strong>$output</strong> 中的行数，可以是 0 或更多。

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_set_prefetch()</strong>


id: oci_fetch_array
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as an associative or numeric array
    
  
  Returns an array containing the next result-set row of a query. Each array entry corresponds to a
  column of the row.  This function is typically called in a loop until it returns <info>false</info>, indicating
  no more rows exist.
  
  If <strong>$statement</strong> corresponds to a PL/SQL block returning Oracle Database Implicit Result Sets, then
  rows from all sets are consecutively fetched. If <strong>$statement</strong> is returned by
  <strong>oci_get_implicit_resultset()</strong>, then only the subset of rows for one child query are returned.
  
  要获取 OCI8
  扩展进行数据类型映射的细节，请参见驱动所支持的数据类型。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。
                        
                        Can also be a statement identifier returned by <strong>oci_get_implicit_resultset()</strong>.
  <info>int</info>       <strong>$mode</strong>       An optional second parameter can be any combination of the following
                        constants: <strong>oci_fetch_array()</strong> ModesConstantDescription<info>OCI_BOTH</info>Returns an
                        array with both associative and numeric indices. This is the same as
                        <info>OCI_ASSOC</info> + <info>OCI_NUM</info> and is the default behavior.<info>OCI_ASSOC</info>Returns an
                        associative array.<info>OCI_NUM</info>Returns a numeric array.<info>OCI_RETURN_NULLS</info>Creates
                        elements for <info>null</info> fields.  The element values will be a PHP <info>null</info>.
                        <info>OCI_RETURN_LOBS</info>Returns the contents of LOBs instead of the LOB descriptors.
                        
                        The default <strong>$mode</strong> is <info>OCI_BOTH</info>.
                        
                        Use the addition operator "+" to specify more than one mode at a time.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array with associative and/or numeric indices. If there are no more rows
               in the <strong>$statement</strong> then <info>false</info> is returned.
               
               By default, <return>LOB</return> columns are returned as LOB descriptors.
               
               <return>DATE</return> columns are returned as strings formatted to the current date format.  The
               default format can be changed with Oracle environment variables such as <return>NLS_LANG</return> or
               by a previously executed <return>ALTER SESSION SET NLS_DATE_FORMAT</return> command.
               
               Oracle's default, non-case sensitive column names will have uppercase associative
               indices in the result array.  Case-sensitive column names will have array indices
               using the exact column case. Use <strong>var_dump()</strong> on the result array to verify the
               appropriate case to use for each query.
               
               The table name is not included in the array index.  If your query contains two
               different columns with the same name, use <info>OCI_NUM</info> or add a column alias to the query
               to ensure name uniqueness, see example #7. Otherwise only one column will be returned
               via PHP.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_set_prefetch()</strong>


id: oci_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as an associative array
  
  Returns an associative array containing the next result-set row of a query. Each array entry
  corresponds to a column of the row.  This function is typically called in a loop until it returns
  <info>false</info>, indicating no more rows exist.
  
  Calling <strong>oci_fetch_assoc()</strong> is identical to calling <strong>oci_fetch_array()</strong> with <info>OCI_ASSOC</info> +
  <info>OCI_RETURN_NULLS</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。

<comment>Return:</comment>
  <info>array|false</info>  Returns an associative array. If there are no more rows in the <strong>$statement</strong> then <info>false</info>
               is returned.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>


id: oci_fetch_object
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as an object
  
  Returns an object containing the next result-set row of a query. Each attribute of the object
  corresponds to a column of the row. This function is typically called in a loop until it returns
  <info>false</info>, indicating no more rows exist.
  
  要获取 OCI8
  扩展进行数据类型映射的细节，请参见驱动所支持的数据类型。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns an object.  Each attribute of the object corresponds to a column of the
                  row.  If there are no more rows in the <strong>$statement</strong> then <info>false</info> is returned.
                  
                  Any <return>LOB</return> columns are returned as LOB descriptors.
                  
                  <return>DATE</return> columns are returned as strings formatted to the current date format.  The
                  default format can be changed with Oracle environment variables such as <return>NLS_LANG</return>
                  or by a previously executed <return>ALTER SESSION SET NLS_DATE_FORMAT</return> command.
                  
                  Oracle's default, non-case sensitive column names will have uppercase attribute
                  names.  Case-sensitive column names will have attribute names using the exact
                  column case. Use <strong>var_dump()</strong> on the result object to verify the appropriate case
                  for attribute access.
                  
                  Attribute values will be <info>null</info> for any <return>NULL</return> data fields.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_row()</strong>


id: oci_fetch_row
type: function
doc:
<comment>Description:</comment>
  Returns the next row from a query as a numeric array
  
  Returns a numerically indexed array containing the next result-set row of a query. Each array
  entry corresponds to a column of the row.  This function is typically called in a loop until it
  returns <info>false</info>, indicating no more rows exist.
  
  Calling <strong>oci_fetch_row()</strong> is identical to calling <strong>oci_fetch_array()</strong> with <info>OCI_NUM</info> + <info>OCI_RETURN_NULLS</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。

<comment>Return:</comment>
  <info>array|false</info>  Returns a numerically indexed array.  If there are no more rows in the <strong>$statement</strong>
               then <info>false</info> is returned.

<comment>See Also:</comment>
   * <strong>oci_fetch()</strong>
   * <strong>oci_fetch_all()</strong>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>


id: oci_field_is_null
type: function
doc:
<comment>Description:</comment>
  检测当前获取的行中，字段是否为 null
  
  检测 <strong>$statement</strong> 的当前行中的指定 <strong>$column</strong> 是否为 <info>null</info>。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>string|int</info>  <strong>$column</strong>     字段索引（从 1 开始）或者名称。

<comment>Return:</comment>
  <info>bool</info>  如果 <strong>$column</strong> 是 <info>null</info>，返回 <info>true</info>，否则返回 <info>false</info>。


id: oci_field_name
type: function
doc:
<comment>Description:</comment>
  返回 statement 中的字段名
  
  返回 <strong>$column</strong> 的名称。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>string|int</info>  <strong>$column</strong>     字段索引（从 1 开始）或者名称。

<comment>Return:</comment>
  <info>string|false</info>  返回字符串形式的名称， 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>oci_num_fields()</strong>
   * <strong>oci_field_type()</strong>
   * <strong>oci_field_size()</strong>


id: oci_field_precision
type: function
doc:
<comment>Description:</comment>
  返回字段精度
  
  返回 <strong>$column</strong> 的精度。
  
  对于 FLOAT 字段，精度不为零且小数位数为 -127。如果精度为 0，则字段为 NUMBER。其它类型为
  NUMBER(precision, scale)。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>string|int</info>  <strong>$column</strong>     字段索引（从 1 开始）或者名称。

<comment>Return:</comment>
  <info>int|false</info>  返回整数形式的精度， 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>oci_field_scale()</strong>
   * <strong>oci_field_type()</strong>


id: oci_field_scale
type: function
doc:
<comment>Description:</comment>
  返回字段范围
  
  返回 <strong>$column</strong> 列索引的范围。
  
  对于 FLOAT 列，精度为非零且范围为 -127。如果精度为 0，则列为 NUMBER。否则为 NUMBER(precision,
  scale)。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>string|int</info>  <strong>$column</strong>     可以是字段的索引（从1开始），也可以是名称。

<comment>Return:</comment>
  <info>int|false</info>  返回 int 类型的范围， 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>oci_field_precision()</strong>
   * <strong>oci_field_type()</strong>


id: oci_field_size
type: function
doc:
<comment>Description:</comment>
  返回字段大小
  
  返回 <strong>$column</strong> 的大小。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>string|int</info>  <strong>$column</strong>     可以是字段的索引（从1开始），也可以是名称。

<comment>Return:</comment>
  <info>int|false</info>  以字节为单位返回 <strong>$column</strong> 的大小， 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>oci_num_fields()</strong>
   * <strong>oci_field_name()</strong>


id: oci_field_type
type: function
doc:
<comment>Description:</comment>
  返回字段的数据类型名称
  
  返回字段的数据类型名称。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>string|int</info>  <strong>$column</strong>     可以是字段的索引（从1开始），也可以是名称。

<comment>Return:</comment>
  <info>string|int|false</info>  返回 <info>string</info> 或 <info>int</info> 类型的字段数据类型， 或者在失败时返回 <info>false</info>

<comment>See Also:</comment>
   * <strong>oci_num_fields()</strong>
   * <strong>oci_field_name()</strong>
   * <strong>oci_field_size()</strong>


id: oci_field_type_raw
type: function
doc:
<comment>Description:</comment>
  返回字段的原始 Oracle 数据类型
  
  返回 <strong>$column</strong> 的 Oracle 原始“SQLT”数据类型。
  
  如果想要字段的类型名称，然后使用 <strong>oci_field_type()</strong> 代替。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  有效的 OCI 语句标识符。
  <info>string|int</info>  <strong>$column</strong>     可以是字段的索引（从1开始），也可以是名称。

<comment>Return:</comment>
  <info>int|false</info>  返回数字类型的 Oracle 的原始数据类型， 或者在失败时返回 <info>false</info>


id: oci_free_descriptor
type: function
doc:
<comment>Description:</comment>
  Frees a descriptor
  
  Frees a descriptor allocated by <strong>oci_new_descriptor()</strong>.

<comment>Param:</comment>
  <info></info>  <strong>$descriptor</strong>  Descriptor allocated by <strong>oci_new_descriptor()</strong>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * OCILOB::free


id: oci_free_statement
type: function
doc:
<comment>Description:</comment>
  释放关联于语句或游标的所有资源
  
  <strong>oci_free_statement()</strong> 释放关联于 Oracle 游标或语句的资源，该资源是作为 <strong>oci_parse()</strong> 的结果或者是从
  Oracle 取得。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI 语句。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: oci_get_implicit_resultset
type: function
doc:
<comment>Description:</comment>
  Returns the next child statement resource from a parent statement resource that has Oracle
  Database
  Implicit Result Sets
    
  
  Used to fetch consectutive sets of query results after the execution of a stored or anonymous
  Oracle PL/SQL block where that block returns query results with the Oracle Database 12 (or later)
  DBMS_SQL.RETURN_RESULT PL/SQL function.  This allows PL/SQL blocks to easily return query results.
  
  The child statement can be used with any of the OCI8 fetching functions: <strong>oci_fetch()</strong>,
  <strong>oci_fetch_all()</strong>, <strong>oci_fetch_array()</strong>, <strong>oci_fetch_object()</strong>, <strong>oci_fetch_assoc()</strong> or <strong>oci_fetch_row()</strong>
  
  Child statements inherit their parent statement's prefetch value, or it can be explicitly set with
  <strong>oci_set_prefetch()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  A valid OCI8 statement identifier created by <strong>oci_parse()</strong> and executed by
                        <strong>oci_execute()</strong>.  The statement identifier may or may not be associated with a
                        SQL statement that returns Implicit Result Sets.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a statement handle for the next child statement available on <strong>$statement</strong>.
                  Returns <info>false</info> when child statements do not exist, or all child statements have
                  been returned by previous calls to <strong>oci_get_implicit_resultset()</strong>.


id: oci_internal_debug
type: function
doc:
<comment>Description:</comment>
  Enables or disables internal debug output
  
  Enables or disables internal debug output.

<comment>Param:</comment>
  <info>bool</info>  <strong>$onoff</strong>  Set this to <info>false</info> to turn debug output off or <info>true</info> to turn it on.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: oci_lob_copy
type: function
doc:
<comment>Description:</comment>
  Copies large object
  
  Copies a large object or a part of a large object to another large object. Old LOB-recipient data
  will be overwritten.
  
  If you need to copy a particular part of a LOB to a particular position of a LOB, use
  <strong>OCILob::seek()</strong> to move LOB internal pointers.

<comment>Param:</comment>
  <info>OCILob</info>    <strong>$to</strong>      The destination LOB.
  <info>OCILob</info>    <strong>$from</strong>    The copied LOB.
  <info>int|null</info>  <strong>$length</strong>  Indicates the length of data to be copied.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: oci_lob_is_equal
type: function
doc:
<comment>Description:</comment>
  Compares two LOB/FILE locators for equality
  
  Compares two LOB/FILE locators.

<comment>Param:</comment>
  <info>OCILob</info>  <strong>$lob1</strong>  A LOB identifier.
  <info>OCILob</info>  <strong>$lob2</strong>  A LOB identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if these objects are equal, <info>false</info> otherwise.


id: oci_new_collection
type: function
doc:
<comment>Description:</comment>
  分配新的 collection 对象
  
  分配新的 collection 对象。

<comment>Param:</comment>
  <info>resource</info>     <strong>$connection</strong>  Oracle 连接标识符，由 <strong>oci_connect()</strong> 或 <strong>oci_pconnect()</strong> 返回。
  <info>string</info>       <strong>$type_name</strong>   应该是有效的命名类型（大写）。
  <info>string|null</info>  <strong>$schema</strong>      应该指向创建命名类型的 scheme 。当传递 <info>null</info> 时，使用当前用户名。

<comment>Return:</comment>
  <info>OCICollection|false</info>  返回新 <class>OCICollection</class> 对象，或者当失败时返回 <info>false</info>。


id: oci_new_connect
type: function
doc:
<comment>Description:</comment>
  使用唯一连接，连接到 Oracle 服务器
  
  建立与 Oracle 服务器的新连接并登录。
  
  与 <strong>oci_connect()</strong> 和 <strong>oci_pconnect()</strong> 不同，<strong>oci_new_connect()</strong> 不缓存连接并且始终返回全新的刚打开的连
  接句柄。如果应用程序需要在两组查询之间进行事务隔离，这将很有用。

<comment>Param:</comment>
  <info>string</info>       <strong>$username</strong>           Oracle 用户名。
  <info>string</info>       <strong>$password</strong>           <strong>$username</strong> 的密码。
  <info>string|null</info>  <strong>$connection_string</strong>  包含要连接的
                                   <return>Oracle 实例</return>。可以是 Easy Connect 串，或是
                                   tnsnames.ora 文件中的连接名，或是本地 Oracle 实例名。
                                   
                                   如果不指定或者为 <info>null</info>，PHP 使用环境变量来确定连接的 <return>Oracle 实例</return>，
                                   诸如 <info>TWO_TASK</info>（Linux 下）或  <info>LOCAL</info>（Windows 下）与 <info>ORACLE_SID</info>
                                   等。
                                   
                                   要使用 Easy Connect 命名方法，PHP 必须与 Oracle 10g 或更高版本的
                                   客户端库进行链接。Oracle 10g 的 Easy Connect 串格式：
                                   [//]host_name[:port][/service_name]。Oracle 11g 则为：
                                   [//]host_name[:port][/service_name][:server_type][/instance_name]。
                                    在 Oracle 19c 加入类更多选项，例如 timeout 和 keep-alive 设置。
                                   请参考 Oracle 文档。 服务名可在数据库服务器机器上运行 Oracle 实用
                                   程序 <return>lsnrctl status</return> 找到。
                                   
                                   tnsnames.ora 文件可在 Oracle Net 查找路径中，此路径包括
                                   /your/path/to/instantclient/network/admin、
                                   $ORACLE_HOME/network/admin 、/etc。 另一种方法是设置 <return>TNS_ADMIN</return> 以
                                   便通过 $TNS_ADMIN/tnsnames.ora 来读取。表确认 web 守护进程可读取
                                   此文件。
  <info>string</info>       <strong>$encoding</strong>           使用 Oracle
                                   客户端库来确定字符集。字符集不需要与数据库的字符集相匹配。如果不
                                   匹配，Oracle
                                   会尽可能地将数据从数据库字符集进行转换。因为依赖于字符集，可能不
                                   能给出可用的结果。转换也增加一些时间开销。
                                   
                                   如果不指定，Oracle 客户端用 <info>NLS_LANG</info> 环境变量来决定字符集。
                                   
                                   传递此参数可减少连接时间。
  <info>int</info>          <strong>$session_mode</strong>       此参数在 PHP 5（PECL OCI8
                                   1.1）版本开始可用，并收受下列值：<info>OCI_DEFAULT</info>，<info>OCI_SYSOPER</info>
                                   和 <info>OCI_SYSDBA</info>。如为
                                   <info>OCI_SYSOPER</info> 或 <info>OCI_SYSDBA</info>
                                   其中之一，此函数将会使用外部的证书建立有特权的连接。有特权的连接
                                   默认是禁用的。需要将
                                   oci8.privileged_connect
                                   设为 <return>On</return> 来启用。
                                   
                                   PHP 5.3（PECL OCI8 1.3.4）引进了 <info>OCI_CRED_EXT</info> 模式值。使用外部或
                                   操作系统认证必需在 Oracle 数据库中进行配置。<info>OCI_CRED_EXT</info> 标志只可
                                   用于用户为 "/"，密码为空的情况。oci8.privileged_connect 可为 <return>On</return>
                                   或 <return>Off</return>。
                                   
                                   <info>OCI_CRED_EXT</info> 可与 <info>OCI_SYSOPER</info> 或 <info>OCI_SYSDBA</info> 模式组合使用。
                                   
                                   <info>OCI_CRED_EXT</info> 由于安全的原因不支持 Windows 系统。

<comment>Return:</comment>
  <info>resource|false</info>  返回连接标识符或错误时为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_connect()</strong>
   * <strong>oci_pconnect()</strong>


id: oci_new_cursor
type: function
doc:
<comment>Description:</comment>
  分配并返回新的游标（语句句柄）
  
  在指定连接上分配新的语句句柄。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识符，由 <strong>oci_connect()</strong> 或 <strong>oci_pconnect()</strong> 返回。

<comment>Return:</comment>
  <info>resource|false</info>  返回新的语句句柄，或者失败时返回 <info>false</info>。


id: oci_new_descriptor
type: function
doc:
<comment>Description:</comment>
  初始化新的空 LOB 或 FILE 描述符
  
  分配保存描述符或 LOB 定位器的资源。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识符，由 <strong>oci_connect()</strong> 或 <strong>oci_pconnect()</strong> 返回。
  <info>int</info>       <strong>$type</strong>        <strong>$type</strong> 的有效值是：<info>OCI_DTYPE_FILE</info>、<info>OCI_DTYPE_LOB</info> 和 <info>OCI_DTYPE_ROWID</info>。

<comment>Return:</comment>
  <info>OCILob|null</info>  成功时返回新 LOB 或 FILE 描述符，失败时为 <info>null</info>。

<comment>See Also:</comment>
   * <strong>oci_bind_by_name()</strong>


id: oci_num_fields
type: function
doc:
<comment>Description:</comment>
  返回语句中结果列的数量
  
  获取 <strong>$statement</strong> 中的列的数量。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI 语句标识符。

<comment>Return:</comment>
  <info>int</info>  返回 <info>int</info> 类型的列的数量。


id: oci_num_rows
type: function
doc:
<comment>Description:</comment>
  返回语句执行后受影响的行数
  
  获取语句执行后受影响的行数。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI 语句标识符。

<comment>Return:</comment>
  <info>int|false</info>  返回 int 类型的受影响的行数， 或者在失败时返回 <info>false</info>。


id: oci_parse
type: function
doc:
<comment>Description:</comment>
  预处理用于执行的 Oracle 语句
  
  使用 <strong>$connection</strong> 预处理 <strong>$sql</strong> 并返回语句标识符，语句标识符可跟 <strong>oci_bind_by_name()</strong>、<strong>oci_execute()</strong> 和
  其它函数一起使用。
  
  语句标识符可使用 <strong>oci_free_statement()</strong> 或将变量设置为 <info>null</info> 来释放。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识符，由  <strong>oci_connect()</strong>、<strong>oci_pconnect()</strong> 或 <strong>oci_new_connect()</strong>
                         返回。
  <info>string</info>    <strong>$sql</strong>         SQL 或 PL/SQL 语句。
                         
                         SQL 语句不应以分号（";"）结尾。PL/SQL 语句应以分号（";"）结尾。

<comment>Return:</comment>
  <info>resource|false</info>  成功时返回语句句柄，错误时为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_execute()</strong>
   * <strong>oci_free_statement()</strong>


id: oci_password_change
type: function
doc:
<comment>Description:</comment>
  修改 Oracle 用户的密码
  
  修改用户 <strong>$username</strong> 的密码。
  
  <strong>oci_password_change()</strong> 函数对于 PHP 命令行脚本或在整个 PHP 应用程序中使用非持久连接时最有用。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>     Oracle 连接标识符，由 <strong>oci_connect()</strong> 或 <strong>oci_pconnect()</strong> 返回。
  <info>string</info>    <strong>$username</strong>       Oracle 用户名。
  <info>string</info>    <strong>$old_password</strong>   旧密码。
  <info>string</info>    <strong>$new_password</strong>   要设置的新密码。
  <info>string</info>    <strong>$database_name</strong>  数据库名。

<comment>Return:</comment>
  <info>bool</info>  提供 <strong>$database_name</strong> 时，<strong>oci_password_change()</strong> 成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。提供
        <strong>$connection</strong> 时，<strong>oci_password_change()</strong> 成功时返回连接资源， 或者在失败时返回 <info>false</info>。


id: oci_pconnect
type: function
doc:
<comment>Description:</comment>
  使用持久连接连，连接到 Oracle 数据库
  
  创建到 Oracle 服务器的持久连接并登录。
  
  持久连接会被缓冲并在请求之间重复使用，可以降低每个页面加载的消耗；一个典型的 PHP 应用程序对于每个
  Apache 子进程（或者 PHP FastCGI 进程）会有打开的持久连接到 Oracle 服务器。更多信息见连接处理和连接
  池一节。

<comment>Param:</comment>
  <info>string</info>       <strong>$username</strong>           Oracle 用户名。
  <info>string</info>       <strong>$password</strong>           <strong>$username</strong> 的密码。
  <info>string|null</info>  <strong>$connection_string</strong>  包含要连接的
                                   <return>Oracle 实例</return>。可以是 Easy Connect 串，或是
                                   tnsnames.ora 文件中的连接名，或是本地 Oracle 实例名。
                                   
                                   如果不指定或者为 <info>null</info>，PHP 使用环境变量来确定连接的 <return>Oracle 实例</return>，
                                   诸如 <info>TWO_TASK</info>（Linux 下）或  <info>LOCAL</info>（Windows 下）与 <info>ORACLE_SID</info>
                                   等。
                                   
                                   要使用 Easy Connect 命名方法，PHP 必须与 Oracle 10g 或更高版本的
                                   客户端库进行链接。Oracle 10g 的 Easy Connect 串格式：
                                   [//]host_name[:port][/service_name]。Oracle 11g 则为：
                                   [//]host_name[:port][/service_name][:server_type][/instance_name]。
                                    在 Oracle 19c 加入类更多选项，例如 timeout 和 keep-alive 设置。
                                   请参考 Oracle 文档。 服务名可在数据库服务器机器上运行 Oracle 实用
                                   程序 <return>lsnrctl status</return> 找到。
                                   
                                   tnsnames.ora 文件可在 Oracle Net 查找路径中，此路径包括
                                   /your/path/to/instantclient/network/admin、
                                   $ORACLE_HOME/network/admin 、/etc。 另一种方法是设置 <return>TNS_ADMIN</return> 以
                                   便通过 $TNS_ADMIN/tnsnames.ora 来读取。表确认 web 守护进程可读取
                                   此文件。
  <info>string</info>       <strong>$encoding</strong>           使用 Oracle
                                   客户端库来确定字符集。字符集不需要与数据库的字符集相匹配。如果不
                                   匹配，Oracle
                                   会尽可能地将数据从数据库字符集进行转换。因为依赖于字符集，可能不
                                   能给出可用的结果。转换也增加一些时间开销。
                                   
                                   如果不指定，Oracle 客户端用 <info>NLS_LANG</info> 环境变量来决定字符集。
                                   
                                   传递此参数可减少连接时间。
  <info>int</info>          <strong>$session_mode</strong>       此参数在 PHP 5（PECL OCI8
                                   1.1）版本开始可用，并收受下列值：<info>OCI_DEFAULT</info>，<info>OCI_SYSOPER</info>
                                   和 <info>OCI_SYSDBA</info>。如为
                                   <info>OCI_SYSOPER</info> 或 <info>OCI_SYSDBA</info>
                                   其中之一，此函数将会使用外部的证书建立有特权的连接。有特权的连接
                                   默认是禁用的。需要将
                                   oci8.privileged_connect
                                   设为 <return>On</return> 来启用。
                                   
                                   PHP 5.3（PECL OCI8 1.3.4）引进了 <info>OCI_CRED_EXT</info> 模式值。使用外部或
                                   操作系统认证必需在 Oracle 数据库中进行配置。<info>OCI_CRED_EXT</info> 标志只可
                                   用于用户为 "/"，密码为空的情况。oci8.privileged_connect 可为 <return>On</return>
                                   或 <return>Off</return>。
                                   
                                   <info>OCI_CRED_EXT</info> 可与 <info>OCI_SYSOPER</info> 或 <info>OCI_SYSDBA</info> 模式组合使用。
                                   
                                   <info>OCI_CRED_EXT</info> 由于安全的原因不支持 Windows 系统。

<comment>Return:</comment>
  <info>resource|false</info>  返回连接标识符或错误时为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_connect()</strong>
   * <strong>oci_new_connect()</strong>


id: oci_register_taf_callback
type: function
doc:
<comment>Description:</comment>
  Register a user-defined callback function for Oracle Database TAF
  
  Registers a user-defined callback function to <strong>$connection</strong>. If <strong>$connection</strong> fails due to instance or
  network failure, the registered callback function will be invoked for several times during
  failover. See OCI8 Transparent Application Failover (TAF) Support for information.
  
  When <strong>oci_register_taf_callback()</strong> is called multiple times, each registration overwrites the
  previous one.
  
  Use <strong>oci_unregister_taf_callback()</strong> to explicitly unregister a user-defined callback.
  
  TAF callback registration will NOT be saved across persistent connections, therefore the callback
  needs to be re-registered for a new persistent connection.

<comment>Param:</comment>
  <info>resource</info>       <strong>$connection</strong>  An Oracle connection identifier.
  <info>callable|null</info>  <strong>$callback</strong>    A user-defined callback to register for Oracle TAF. It can be a string
                              of the function name or a Closure (anonymous function).
                              
                              The interface of a TAF user-defined callback function is as follows:
                              
                              See the parameter description and an example on  OCI8 Transparent
                              Application Failover (TAF) Support page.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_unregister_taf_callback()</strong>


id: oci_result
type: function
doc:
<comment>Description:</comment>
  返回所取得行中字段的值
  
  返回由 <strong>oci_fetch()</strong> 所读取的当前行中 <strong>$column</strong> 的数据。
  
  要获取 OCI8
  扩展进行数据类型映射的细节，请参见驱动所支持的数据类型。

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  
  <info>string|int</info>  <strong>$column</strong>     可以使用列号（从 1 开始）或列名。列名的大小写必须是 Oracle 元数据描述该列
                          的大小写，对于创建的不区分大小写的列来说是大写。

<comment>Return:</comment>
  <info>mixed</info>  以字符串形式返回除抽象类型（ROWID、LOB 和 FILE）之外的所有内容。在出错时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_fetch_array()</strong>
   * <strong>oci_fetch_assoc()</strong>
   * <strong>oci_fetch_object()</strong>
   * <strong>oci_fetch_row()</strong>
   * <strong>oci_fetch_all()</strong>


id: oci_rollback
type: function
doc:
<comment>Description:</comment>
  回滚未完成的事务
  
  恢复 Oracle <strong>$connection</strong> 的所有未提交更改并结束事务。释放所有持有的锁。所有 Oracle <return>SAVEPOINTS</return> 都被
  擦除。
  
  当使用 <info>OCI_NO_AUTO_COMMIT</info> flag 通过 <strong>oci_execute()</strong> 执行第一个更改数据的 SQL 语句时，事务开始。其他
  语句所做的后续数据更改成为同一事务的一部分。在事务提交或回滚之前，事务中所做的数据更改是临时的。在
  提交之前，数据库的其他用户将看不到更改。
  
  插入或更新数据时，出于关系数据一致性和性能原因，建议使用事务。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  <strong>oci_connect()</strong>、<strong>oci_pconnect()</strong> 或 <strong>oci_new_connect()</strong> 返回的 Oracle 连接标识
                         符。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_commit()</strong>
   * <strong>oci_execute()</strong>


id: oci_server_version
type: function
doc:
<comment>Description:</comment>
  返回 Oracle 数据库版本
  
  以字符串返回 Oracle 数据库版本和可用选项。

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  

<comment>Return:</comment>
  <info>string|false</info>  以字符串返回版本信息，错误时为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_client_version()</strong>


id: oci_set_action
type: function
doc:
<comment>Description:</comment>
  Sets the action name
  
  Sets the action name for Oracle tracing.
  
  The action name is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The action name can subsequently be queried from database administration views such as <return>V$SESSION</return>.
  It can be used for tracing and monitoring such as with <return>V$SQLAREA</return> and
  <return>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</return>.
  
  The value may be retained across persistent connections.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识，由
                         <strong>oci_connect()</strong>，<strong>oci_pconnect()</strong>，或
                         <strong>oci_new_connect()</strong> 返回。
  <info>string</info>    <strong>$action</strong>      User chosen string up to 32 bytes long.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_client_identifier()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_call_timeout
type: function
doc:
<comment>Description:</comment>
  Sets a millisecond timeout for database calls
  
  Sets a timeout limiting the maxium time a database round-trip using this connection may take.
  
  Each OCI8 operation may make zero or more calls to Oracle's client library.  These internal calls
  may then may make zero or more round-trips to Oracle Database.  If any one of those round-trips
  takes more than <return>time_out</return> milliseconds, then the operation is cancelled and an error is returned to
  the application.
  
  The <return>time_out</return> value applies to each round-trip individually, not to the sum of all round-trips.
  Time spent processing in PHP OCI8 before or after the completion of each round-trip is not
  counted.
  
  When a call is interrupted, Oracle will attempt to clean up the connection for reuse.  This
  operation is allowed to run for another <return>time_out</return> period.  Depending on the outcome of the cleanup,
  the connection may or may not be reusable.
  
  When persistent connections are used, the timeout value will be retained across PHP requests.
  
  The <strong>oci_set_call_timeout()</strong> function is available when OCI8 uses Oracle 18 (or later) Client
  libraries.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识，由
                         <strong>oci_connect()</strong>，<strong>oci_pconnect()</strong>，或
                         <strong>oci_new_connect()</strong> 返回。
  <info>int</info>       <strong>$timeout</strong>     The maximum time in milliseconds that any single round-trip between PHP and
                         Oracle Database may take.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: oci_set_client_identifier
type: function
doc:
<comment>Description:</comment>
  Sets the client identifier
  
  Sets the client identifier used by various database components to identify lightweight application
  users who authenticate as the same database user.
  
  The client identifier is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The identifier can subsequently be queried, for example with <return>SELECT
  SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL</return>.  Database administration views such as
  <return>V$SESSION</return> will also contain the value.  It can be used with <return>DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE</return>
  for tracing and can also be used for auditing.
  
  The value may be retained across page requests that use the same persistent connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识，由
                         <strong>oci_connect()</strong>，<strong>oci_pconnect()</strong>，或
                         <strong>oci_new_connect()</strong> 返回。
  <info>string</info>    <strong>$client_id</strong>   User chosen string up to 64 bytes long.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_client_info
type: function
doc:
<comment>Description:</comment>
  Sets the client information
  
  Sets the client information for Oracle tracing.
  
  The client information is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The client information can subsequently be queried from database  administration views such as
  <return>V$SESSION</return>.
  
  The value may be retained across persistent connections.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>   Oracle 连接标识，由
                          <strong>oci_connect()</strong>，<strong>oci_pconnect()</strong>，或
                          <strong>oci_new_connect()</strong> 返回。
  <info>string</info>    <strong>$client_info</strong>  User chosen string up to 64 bytes long.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_client_identifier()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_db_operation
type: function
doc:
<comment>Description:</comment>
  Sets the database operation
  
  Sets the DBOP for Oracle tracing.
  
  The database operation name is registered with the database when the next 'round-trip' from PHP to
  the database occurs, typically when a SQL statement is executed.
  
  The database operation can subsequently be queried from database administration views such as
  <return>V$SQL_MONITOR</return>.
  
  The <strong>oci_set_db_operation()</strong> function is available when OCI8 uses Oracle 12 (or later) Client
  libraries and Oracle Database 12 (or later).

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识，由
                         <strong>oci_connect()</strong>，<strong>oci_pconnect()</strong>，或
                         <strong>oci_new_connect()</strong> 返回。
  <info>string</info>    <strong>$action</strong>      User chosen string.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_module_name()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_client_identifier()</strong>


id: oci_set_edition
type: function
doc:
<comment>Description:</comment>
  Sets the database edition
  
  Sets the database "edition" of objects to be used by a subsequent connections.
  
  Oracle Editions allow concurrent versions of applications to run using the same schema and object
  names.  This is useful for upgrading live systems.
  
  Call <strong>oci_set_edition()</strong> before calling <strong>oci_connect()</strong>, <strong>oci_pconnect()</strong> or <strong>oci_new_connect()</strong>.
  
  If an edition is set that is not valid in the database, connection will fail even if
  <strong>oci_set_edition()</strong> returns success.
  
  When using persistent connections, if a connection with the requested edition setting already
  exists, it is reused.  Otherwise, a different persistent connection is created

<comment>Param:</comment>
  <info>string</info>  <strong>$edition</strong>  Oracle Database edition name previously created with the SQL "<return>CREATE EDITION</return>"
                    command.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: oci_set_module_name
type: function
doc:
<comment>Description:</comment>
  Sets the module name
  
  Sets the module name for Oracle tracing.
  
  The module name is registered with the database when the next 'round-trip' from PHP to the
  database occurs, typically when an SQL statement is executed.
  
  The name can subsequently be queried from database administration views such as <return>V$SESSION</return>.  It can
  be used for tracing and monitoring such as with <return>V$SQLAREA</return> and
  <return>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</return>.
  
  The value may be retained across persistent connections.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  Oracle 连接标识，由
                         <strong>oci_connect()</strong>，<strong>oci_pconnect()</strong>，或
                         <strong>oci_new_connect()</strong> 返回。
  <info>string</info>    <strong>$name</strong>        User chosen <info>string</info> up to 48 bytes long.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_set_action()</strong>
   * <strong>oci_set_client_info()</strong>
   * <strong>oci_set_client_identifier()</strong>
   * <strong>oci_set_db_operation()</strong>


id: oci_set_prefetch
type: function
doc:
<comment>Description:</comment>
  设置查询预读取的行数
  
  在调用 <strong>oci_execute()</strong> 成功查询以及对数据库的每个后续内部读取请求之后，设置 Oracle 客户端库缓冲的行
  数。对于返回大量行的查询，可以通过在默认 oci8.default_prefetch 值上增加预读取数来显着提高性能。
  
  预读取是 Oracle 在每个网络请求中从数据库返回多个数据行的有效方式。这可以提高网络和 CPU 利用率。行
  缓冲是 OCI8 的内部操作，无论预取数如何，OCI8 提取函数的行为都不会改变。例如，<strong>oci_fetch_row()</strong> 将始
  终返回一行。预读取缓冲区是针对单个语句的，不会被重新执行的语句或其他连接使用。
  
  在调用 <strong>oci_execute()</strong> 之前调用 <strong>oci_set_prefetch()</strong>。
  
  调整目标是将预读取值设置为网络和数据库要处理的合理大小。对于返回大量行的查询，如果以多个块的形式从
  数据库中检索行（即设置预读取值小于行数），则整体系统效率可能会更好。这允许数据库在 PHP 脚本处理行
  的当前集合的同时处理其他用户的语句。
  
  Oracle 8i 中引入了查询预读取。REF CURSOR 预读取是在 Oracle 11gR2 中引入的，当 PHP 与 Oracle
  11gR2（或更高版本）客户端库链接时发生。嵌套游标预读取是在 Oracle 11gR2 中引入的，它要求 Oracle
  Client 库和数据库都是 11gR2 或更高版本。
  
  当查询包含 LONG 或 LOB 列时，不支持预读取。预读取值将会忽略，并且在不支持预读取的所有情况下都将使
  用单行获取。
  
  使用 Oracle Database 12c 时，PHP 设置的预读取值可以被 Oracle 的客户端 <return>oraaccess.xml</return> 配置文件覆盖。
  有关详细信息，请参阅 Oracle 文档。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  有效的 OCI8 报表标识符
                        由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                        或 <return>REF CURSOR</return> statement 标识执行。
  <info>int</info>       <strong>$rows</strong>       要预读取的行数，&gt;= 0

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * oci8.default_prefetch
     ini 选项
    


id: oci_set_prefetch_lob
type: function
doc:
<comment>Description:</comment>
  Sets the amount of data prefetched for each CLOB or BLOB.
  
  Sets the internal buffer size used to fetch each CLOB or BLOB value when the implementation gets
  the internal Oracle LOB locator from the database after a successful query call to <strong>oci_execute()</strong>
  and for each subsequent internal fetch request to the database.  Increasing this value can improve
  the performance of fetching smaller LOBs by reducing round-trips between PHP and the database.
  Memory usage will change.
  
  The value affects LOBs returned as OCILob instances and also those returned using <info>OCI_RETURN_LOBS</info>.
  
  Call <strong>oci_set_prefetch_lob()</strong> before calling <strong>oci_execute()</strong>.  If it is not called, the value of
  oci8.prefetch_lob_size is used.
  
  The LOB prefetch value should only be set with Oracle Database 12.2 or later.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>          有效的 OCI8 报表标识符
                                由 <strong>oci_parse()</strong> 创建，被 <strong>oci_execute()</strong>
                                或 <return>REF CURSOR</return> statement 标识执行。
  <info>int</info>       <strong>$prefetch_lob_size</strong>  The number of bytes of each LOB to be prefetched, &gt;= 0

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * oci8.prefetch_lob_size
     ini option
    


id: oci_statement_type
type: function
doc:
<comment>Description:</comment>
  返回语句的类型
  
  返回关键字，标识 OCI8 <strong>$statement</strong> 的类型。

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  来自 <strong>oci_parse()</strong> 的有效 OCI8 语句标识符。

<comment>Return:</comment>
  <info>string|false</info>  返回 <strong>$statement</strong> 类型，可能为以下字符串之一。 语句类型返回字符串说明
                <return>ALTER</return><return>BEGIN</return><return>CALL</return><return>CREATE</return><return>DECLARE</return><return>DELETE</return><return>DROP</return><return>INSERT</return><return>SELECT</return><return>UPDATE</return><return>UNKNOWN</return>
                
                错误时返回 <info>false</info>。


id: oci_unregister_taf_callback
type: function
doc:
<comment>Description:</comment>
  Unregister a user-defined callback function for Oracle Database TAF
  
  Unregister the user-defined callback function registered to <strong>$connection </strong> by
  <strong>oci_register_taf_callback()</strong>. See OCI8 Transparent Application Failover (TAF) Support  for
  information.

<comment>Param:</comment>
  <info>resource</info>  <strong>$connection</strong>  An Oracle connection identifier.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>oci_register_taf_callback()</strong>


id: ocibindbyname
type: function
doc:
<comment>Description:</comment>
  别名 oci_bind_by_name
  
  别名 <strong>oci_bind_by_name()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicancel
type: function
doc:
<comment>Description:</comment>
  别名 oci_cancel
  
  别名 <strong>oci_cancel()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicloselob
type: function
doc:
<comment>Description:</comment>
  别名 OCILob::close
  
  别名 <strong>OCILob::close()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicollappend
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::append
  
  别名 <strong>OCICollection::append()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicollassign
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::assign
  
  别名 <strong>OCICollection::assign()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicollassignelem
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::assignElem
  
  别名 <strong>OCICollection::assignElem()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicollgetelem
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::getElem
  
  别名 <strong>OCICollection::getElem()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicollmax
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::max
  
  别名 <strong>OCICollection::max()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicollsize
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::size
  
  别名 <strong>OCICollection::size()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolltrim
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::trim
  
  别名 <strong>OCICollection::trim()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolumnisnull
type: function
doc:
<comment>Description:</comment>
  别名 oci_field_is_null
  
  别名 <strong>oci_field_is_null()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolumnname
type: function
doc:
<comment>Description:</comment>
  别名 oci_field_name
  
  别名 <strong>oci_field_name()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolumnprecision
type: function
doc:
<comment>Description:</comment>
  别名 oci_field_precision
  
  别名 <strong>oci_field_precision()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolumnscale
type: function
doc:
<comment>Description:</comment>
  别名 oci_field_scale
  
  别名 <strong>oci_field_scale()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolumnsize
type: function
doc:
<comment>Description:</comment>
  别名 oci_field_size
  
  别名 <strong>oci_field_size()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolumntype
type: function
doc:
<comment>Description:</comment>
  别名 oci_field_type
  
  别名 <strong>oci_field_type()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicolumntyperaw
type: function
doc:
<comment>Description:</comment>
  别名 oci_field_type_raw
  
  别名 <strong>oci_field_type_raw()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocicommit
type: function
doc:
<comment>Description:</comment>
  别名 oci_commit
  
  别名 <strong>oci_commit()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocidefinebyname
type: function
doc:
<comment>Description:</comment>
  别名 oci_define_by_name
  
  别名 <strong>oci_define_by_name()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocierror
type: function
doc:
<comment>Description:</comment>
  别名 oci_error
  
  别名 <strong>oci_error()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociexecute
type: function
doc:
<comment>Description:</comment>
  别名 oci_execute
  
  别名 <strong>oci_execute()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocifetch
type: function
doc:
<comment>Description:</comment>
  别名 oci_fetch
  
  别名 <strong>oci_fetch()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocifetchinto
type: function
doc:
<comment>Description:</comment>
  Obsolete variant of oci_fetch_array, oci_fetch_object,
     oci_fetch_assoc and
     oci_fetch_row
  
  Obsolete variant of <strong>oci_fetch_array()</strong>, <strong>oci_fetch_object()</strong>, <strong>oci_fetch_assoc()</strong> and <strong>oci_fetch_row()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocifetchstatement
type: function
doc:
<comment>Description:</comment>
  别名 oci_fetch_all
  
  别名 <strong>oci_fetch_all()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocifreecollection
type: function
doc:
<comment>Description:</comment>
  别名 OCICollection::free
  
  别名 <strong>OCICollection::free()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocifreecursor
type: function
doc:
<comment>Description:</comment>
  别名 oci_free_statement
  
  别名 <strong>oci_free_statement()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocifreedesc
type: function
doc:
<comment>Description:</comment>
  别名 OCILob::free
  
  别名 <strong>OCILob::free()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociinternaldebug
type: function
doc:
<comment>Description:</comment>
  别名 oci_internal_debug
  
  别名 <strong>oci_internal_debug()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociloadlob
type: function
doc:
<comment>Description:</comment>
  别名 OCILob::load
  
  别名 <strong>OCILob::load()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocilogoff
type: function
doc:
<comment>Description:</comment>
  别名 oci_close
  
  别名 <strong>oci_close()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocilogon
type: function
doc:
<comment>Description:</comment>
  别名 oci_connect
  
  别名 <strong>oci_connect()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocinewcollection
type: function
doc:
<comment>Description:</comment>
  别名 oci_new_collection
  
  别名 <strong>oci_new_collection()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocinewcursor
type: function
doc:
<comment>Description:</comment>
  别名 oci_new_cursor
  
  别名 <strong>oci_new_cursor()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocinewdescriptor
type: function
doc:
<comment>Description:</comment>
  别名 oci_new_descriptor
  
  别名 <strong>oci_new_descriptor()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocinlogon
type: function
doc:
<comment>Description:</comment>
  别名 oci_new_connect
  
  别名 <strong>oci_new_connect()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocinumcols
type: function
doc:
<comment>Description:</comment>
  别名 oci_num_fields
  
  别名 <strong>oci_num_fields()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociparse
type: function
doc:
<comment>Description:</comment>
  别名 oci_parse
  
  别名 <strong>oci_parse()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociplogon
type: function
doc:
<comment>Description:</comment>
  别名 oci_pconnect
  
  别名 <strong>oci_pconnect()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociresult
type: function
doc:
<comment>Description:</comment>
  别名 oci_result
  
  别名 <strong>oci_result()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocirollback
type: function
doc:
<comment>Description:</comment>
  别名 oci_rollback
  
  别名 <strong>oci_rollback()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocirowcount
type: function
doc:
<comment>Description:</comment>
  别名 oci_num_rows
  
  别名 <strong>oci_num_rows()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocisavelob
type: function
doc:
<comment>Description:</comment>
  别名 OCILob::save
  
  别名 <strong>OCILob::save()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocisavelobfile
type: function
doc:
<comment>Description:</comment>
  别名 OCILob::import
  
  别名 <strong>OCILob::import()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociserverversion
type: function
doc:
<comment>Description:</comment>
  别名 oci_server_version
  
  别名 <strong>oci_server_version()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocisetprefetch
type: function
doc:
<comment>Description:</comment>
  别名 oci_set_prefetch
  
  别名 <strong>oci_set_prefetch()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ocistatementtype
type: function
doc:
<comment>Description:</comment>
  别名 oci_statement_type
  
  别名 <strong>oci_statement_type()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociwritelobtofile
type: function
doc:
<comment>Description:</comment>
  别名 OCILob::export
  
  别名 <strong>OCILob::export()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: ociwritetemporarylob
type: function
doc:
<comment>Description:</comment>
  别名 OCILob::writeTemporary
  
  别名 <strong>OCILob::writeTemporary()</strong>
  
  自 PHP 5.4.0
  起，已经废弃此别名。强烈建议不要应用此别名。


id: octdec
type: function
doc:
<comment>Description:</comment>
  八进制转换为十进制
  
  返回 <strong>$octal_string</strong> 参数所表示的八进制数的十进制等值。<strong>$octal_string</strong> 中的任何无效字符都会默认忽略。
  自 PHP 7.4.0 起，弃用使用任何无效字符。

<comment>Param:</comment>
  <info>string</info>  <strong>$octal_string</strong>  要转换的八进制的字符串。

<comment>Return:</comment>
  <info>int|float</info>  <strong>$octal_string</strong> 的十进制的表示

<comment>See Also:</comment>
   * <strong>decoct()</strong>
   * <strong>bindec()</strong>
   * <strong>hexdec()</strong>
   * <strong>base_convert()</strong>


id: odbc_autocommit
type: function
doc:
<comment>Description:</comment>
  Toggle autocommit behaviour
  
  Toggles autocommit behaviour.
  
  By default, auto-commit is on for a connection.  Disabling auto-commit is equivalent with starting
  a transaction.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>    ODBC 连接标识符，详见
                     <strong>odbc_connect()</strong>。
  <info>bool</info>      <strong>$enable</strong>  If <strong>$enable</strong> is <info>true</info>, auto-commit is enabled, if it is <info>false</info> auto-commit is
                     disabled. If <info>null</info> is passed, this function returns the auto-commit status for
                     <strong>$odbc</strong>.

<comment>Return:</comment>
  <info>int|bool</info>  Without the <strong>$enable</strong> parameter, this function returns auto-commit status for <strong>$odbc</strong>.
            Non-zero is returned if auto-commit is on, 0 if it is off, or <info>false</info> if an error occurs.
            
            If <strong>$enable</strong> is set, this function returns <info>true</info> on success and <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>odbc_commit()</strong>
   * <strong>odbc_rollback()</strong>


id: odbc_binmode
type: function
doc:
<comment>Description:</comment>
  Handling of binary column data
  
  Controls handling of binary column data. ODBC SQL types affected are <return>BINARY</return>, <return>VARBINARY</return>, and
  <return>LONGVARBINARY</return>. The default mode can be set using the uodbc.defaultbinmode php.ini directive.
  
  When binary SQL data is converted to character C data (<info>ODBC_BINMODE_CONVERT</info>), each byte (8 bits)
  of source data is represented as two ASCII characters. These characters are the ASCII character
  representation of the number in its hexadecimal form. For example, a binary <return>00000001</return> is converted
  to <return>"01"</return> and a binary <return>11111111</return> is converted to <return>"FF"</return>.
  
  While the handling of <return>BINARY</return> and <return>VARBINARY</return> columns only depend on the binmode, the handling of
  <return>LONGVARBINARY</return> columns also depends on the longreadlen as well: LONGVARBINARY
  handlingbinmodelongreadlenresult<info>ODBC_BINMODE_PASSTHRU</info>0passthru<info>ODBC_BINMODE_RETURN</info>0passthru<info>ODBC_BINMODE_CONVERT</info>0passthru<info>ODBC_BINMODE_PASSTHRU</info>&gt;0passthru<info>ODBC_BINMODE_RETURN</info>&gt;0return
  as is<info>ODBC_BINMODE_CONVERT</info>&gt;0return as char
  
  If <strong>odbc_fetch_into()</strong> is used, passthru means that an empty string is returned for these columns.
  If <strong>odbc_result()</strong> is used, passthru means that the data are sent directly to the client (i.e.
  printed).

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
                        
                        If <strong>$statement</strong> is <return>0</return>, the settings apply as default for new results.
  <info>int</info>       <strong>$mode</strong>       Possible values for <strong>$mode</strong> are: <info>ODBC_BINMODE_PASSTHRU</info>: Passthru BINARY data
                        <info>ODBC_BINMODE_RETURN</info>: Return as is <info>ODBC_BINMODE_CONVERT</info>: Convert to char and
                        return   Handling of binary long columns is also affected by
                        <strong>odbc_longreadlen()</strong>.
                        
                        <info>ODBC_BINMODE_PASSTHRU</info>: Passthru BINARY data
                        
                        <info>ODBC_BINMODE_RETURN</info>: Return as is
                        
                        <info>ODBC_BINMODE_CONVERT</info>: Convert to char and return
                        
                        Handling of binary long columns is also affected by <strong>odbc_longreadlen()</strong>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: odbc_close
type: function
doc:
<comment>Description:</comment>
  Close an ODBC connection
  
  Closes down the connection to the database server.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>  ODBC 连接标识符，详见
                   <strong>odbc_connect()</strong>。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: odbc_close_all
type: function
doc:
<comment>Description:</comment>
  Close all ODBC connections
  
  <strong>odbc_close_all()</strong> will close down all connections to database server(s).

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: odbc_columnprivileges
type: function
doc:
<comment>Description:</comment>
  Lists columns and associated privileges for the given table
  
  Lists columns and associated privileges for the given table.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     ODBC 连接标识符，详见
                         <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。
  <info>string</info>       <strong>$table</strong>    The table name. 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。
  <info>string</info>       <strong>$column</strong>   The column name. 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier 或者在失败时返回 <info>false</info>. This result identifier
                  can be used to fetch a list of columns and associated privileges.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>COLUMN_NAME</return><return>GRANTOR</return><return>GRANTEE</return><return>PRIVILEGE</return><return>IS_GRANTABLE</return>
                  Drivers can report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>GRANTOR</return>
                  
                  <return>GRANTEE</return>
                  
                  <return>PRIVILEGE</return>
                  
                  <return>IS_GRANTABLE</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return>, <return>COLUMN_NAME</return> and
                  <return>PRIVILEGE</return>.


id: odbc_columns
type: function
doc:
<comment>Description:</comment>
  Lists the column names in specified tables
  
  Lists all columns in the requested range.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     ODBC 连接标识符，详见
                         <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。
  <info>string|null</info>  <strong>$table</strong>    The table name. 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。
  <info>string|null</info>  <strong>$column</strong>   The column name. 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier 或者在失败时返回 <info>false</info>.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>COLUMN_NAME</return><return>DATA_TYPE</return><return>TYPE_NAME</return><return>COLUMN_SIZE</return><return>BUFFER_LENGTH</return><return>DECIMAL_DIGITS</return><return>NUM_PREC_RADIX</return><return>NULLABLE</return><return>REMARKS</return><return>COLUMN_DEF</return><return>SQL_DATA_TYPE</return><return>SQL_DATETIME_SUB</return><return>CHAR_OCTET_LENGTH</return><return>ORDINAL_POSITION</return><return>IS_NULLABLE</return>
                  Drivers can report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>DATA_TYPE</return>
                  
                  <return>TYPE_NAME</return>
                  
                  <return>COLUMN_SIZE</return>
                  
                  <return>BUFFER_LENGTH</return>
                  
                  <return>DECIMAL_DIGITS</return>
                  
                  <return>NUM_PREC_RADIX</return>
                  
                  <return>NULLABLE</return>
                  
                  <return>REMARKS</return>
                  
                  <return>COLUMN_DEF</return>
                  
                  <return>SQL_DATA_TYPE</return>
                  
                  <return>SQL_DATETIME_SUB</return>
                  
                  <return>CHAR_OCTET_LENGTH</return>
                  
                  <return>ORDINAL_POSITION</return>
                  
                  <return>IS_NULLABLE</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return> and
                  <return>ORDINAL_POSITION</return>.

<comment>See Also:</comment>
   * <strong>odbc_columnprivileges()</strong>
   * <strong>odbc_procedurecolumns()</strong>


id: odbc_commit
type: function
doc:
<comment>Description:</comment>
  Commit an ODBC transaction
  
  Commits all pending transactions on the connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>  ODBC 连接标识符，详见
                   <strong>odbc_connect()</strong>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: odbc_connect
type: function
doc:
<comment>Description:</comment>
  Connect to a datasource
  
  The connection id returned by this functions is needed by other ODBC functions. You can have
  multiple connections open at once as long as they either use different db or different
  credentials.
  
  With some ODBC drivers, executing a complex stored procedure may fail with an error similar to:
  "Cannot open a cursor on a stored procedure that has anything other than a single select statement
  in it".  Using SQL_CUR_USE_ODBC may avoid that error. Also, some drivers don't support the
  optional row_number parameter in <strong>odbc_fetch_row()</strong>. SQL_CUR_USE_ODBC might help in that case, too.

<comment>Param:</comment>
  <info>string</info>  <strong>$dsn</strong>            The database source name for the connection. Alternatively, a DSN-less
                          connection string can be used.
  <info>string</info>  <strong>$user</strong>           The username.
  <info>string</info>  <strong>$password</strong>       The password.
  <info>int</info>     <strong>$cursor_option</strong>  This sets the type of cursor to be used for this connection. This
                          parameter is not normally needed, but can be useful for working around
                          problems with some ODBC drivers.
                          
                          The following constants are defined for cursortype:
                          
                           SQL_CUR_USE_IF_NEEDED  SQL_CUR_USE_ODBC  SQL_CUR_USE_DRIVER 
                          
                          SQL_CUR_USE_IF_NEEDED
                          
                          SQL_CUR_USE_ODBC
                          
                          SQL_CUR_USE_DRIVER

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC connection,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * For persistent connections: <strong>odbc_pconnect()</strong>


id: odbc_connection_string_is_quoted
type: function
doc:
<comment>Description:</comment>
  Determines if an ODBC connection string value is quoted
  
  Determines if a string is properly quoted for an ODBC connection string value. ODBC connection
  string quoting is performed using curly braces, and ending braces within a string must be escaped
  through repeating them twice, similar to SQL quoting.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>  The string to check for quoting.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if quoted properly, <info>false</info> if not.

<comment>See Also:</comment>
   * <strong>odbc_connection_string_quote()</strong>
   * <strong>odbc_connection_string_should_quote()</strong>


id: odbc_connection_string_quote
type: function
doc:
<comment>Description:</comment>
  Quotes an ODBC connection string value
  
  Quotes a value for a connection string, according to ODBC rules. That is, it will be surrounded by
  quotes, and any ending curly braces will be escaped. This should be done for any connection string
  values that come from user input. Not doing so can lead to issues with parsing the connection
  string, or values being injected into the connection string.
  
  Note that this function does not check if the string is already quoted, nor if the string needs
  quoting. For that, call <strong>odbc_connection_string_is_quoted()</strong> and
  <strong>odbc_connection_string_should_quote()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>  The unquoted string.

<comment>Return:</comment>
  <info>string</info>  A quoted string, surrounded by curly braces, and properly escaped.

<comment>See Also:</comment>
   * <strong>odbc_connection_string_is_quoted()</strong>
   * <strong>odbc_connection_string_should_quote()</strong>


id: odbc_connection_string_should_quote
type: function
doc:
<comment>Description:</comment>
  Determines if an ODBC connection string value should be quoted
  
  Determines if a string needs to be quoted for an ODBC connection string value; that is, if it
  contains special characters.
  
  Note that this does not check if the string is already quoted; an already quoted string will
  contain characters that will make this function return true. You should call
  <strong>odbc_connection_string_is_quoted()</strong> to check.

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>  The string to check for.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the string should be quoted; <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>odbc_connection_string_quote()</strong>
   * <strong>odbc_connection_string_is_quoted()</strong>


id: odbc_cursor
type: function
doc:
<comment>Description:</comment>
  Get cursorname
  
  Gets the cursorname for the given result_id.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.

<comment>Return:</comment>
  <info>string|false</info>  Returns the cursor name, as a string,  或者在失败时返回 <info>false</info>.


id: odbc_data_source
type: function
doc:
<comment>Description:</comment>
  Returns information about available DSNs
  
  This function will return the list of available DSN (after calling it several times).

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>        ODBC 连接标识符，详见
                         <strong>odbc_connect()</strong>。
  <info>int</info>       <strong>$fetch_type</strong>  The <strong>$fetch_type</strong> can be one of two constant types: <info>SQL_FETCH_FIRST</info>,
                         <info>SQL_FETCH_NEXT</info>. Use <info>SQL_FETCH_FIRST</info> the first time this function is called,
                         thereafter use the <info>SQL_FETCH_NEXT</info>.

<comment>Return:</comment>
  <info>array|false</info>  Returns <info>false</info> on error, an <info>array</info> upon success, and <info>null</info> after fetching the last
               available DSN.


id: odbc_error
type: function
doc:
<comment>Description:</comment>
  Get the last error code
  
  Returns a six-digit ODBC state, or an empty string if there has been no errors.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$odbc</strong>  ODBC 连接标识符，详见
                        <strong>odbc_connect()</strong>。

<comment>Return:</comment>
  <info>string</info>  If <strong>$odbc</strong> is specified, the last state of that connection is returned, else the last state
          of any connection is returned.
          
          This function returns meaningful value only if last odbc query failed (i.e. <strong>odbc_exec()</strong>
          returned <info>false</info>).

<comment>See Also:</comment>
   * <strong>odbc_errormsg()</strong>
   * <strong>odbc_exec()</strong>


id: odbc_errormsg
type: function
doc:
<comment>Description:</comment>
  Get the last error message
  
  Returns a string containing the last ODBC error message, or an empty string if there has been no
  errors.

<comment>Param:</comment>
  <info>resource|null</info>  <strong>$odbc</strong>  ODBC 连接标识符，详见
                        <strong>odbc_connect()</strong>。

<comment>Return:</comment>
  <info>string</info>  If <strong>$odbc</strong> is specified, the last state of that connection is returned, else the last state
          of any connection is returned.
          
          This function returns meaningful value only if last odbc query failed (i.e. <strong>odbc_exec()</strong>
          returned <info>false</info>).

<comment>See Also:</comment>
   * <strong>odbc_error()</strong>
   * <strong>odbc_exec()</strong>


id: odbc_exec
type: function
doc:
<comment>Description:</comment>
  Directly execute an SQL statement
  
  Sends an SQL statement to the database server.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>   ODBC 连接标识符，详见
                    <strong>odbc_connect()</strong>。
  <info>string</info>    <strong>$query</strong>  The SQL statement.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier if the SQL command was executed successfully, or
                  <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>odbc_prepare()</strong>
   * <strong>odbc_execute()</strong>


id: odbc_execute
type: function
doc:
<comment>Description:</comment>
  Execute a prepared statement
  
  Executes a statement prepared with <strong>odbc_prepare()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result id <info>resource</info>, from <strong>odbc_prepare()</strong>.
  <info>array</info>     <strong>$params</strong>     Parameters in <strong>$params</strong> will be substituted for placeholders in the prepared
                        statement in order. Elements of this array will be converted to strings by
                        calling this function.
                        
                        Any parameters in <strong>$params</strong> which start and end with single quotes will be
                        taken as the name of a file to read and send to the database server as the
                        data for the appropriate placeholder.
                        
                        If you wish to store a string which actually begins and ends with single
                        quotes, you must add a space or other non-single-quote character to the
                        beginning or end of the parameter, which will prevent the parameter from
                        being taken as a file name. If this is not an option, then you must use
                        another mechanism to store the string, such as executing the query directly
                        with <strong>odbc_exec()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>odbc_prepare()</strong>


id: odbc_fetch_array
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an associative array
  
  Fetch an associative <info>array</info> from an ODBC query.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result resource from <strong>odbc_exec()</strong>.
  <info>int</info>       <strong>$row</strong>        Optionally choose which row number to retrieve.

<comment>Return:</comment>
  <info>array|false</info>  Returns an array that corresponds to the fetched row, or <info>false</info> if there  are no more
               rows.

<comment>See Also:</comment>
   * <strong>odbc_fetch_row()</strong>
   * <strong>odbc_fetch_object()</strong>
   * <strong>odbc_num_rows()</strong>


id: odbc_fetch_into
type: function
doc:
<comment>Description:</comment>
  Fetch one result row into array
  
  Fetch one result row into <info>array</info>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result <info>resource</info>.
  <info>array</info>     <strong>$array</strong>      The result <info>array</info> that can be of any type since it will be converted to type
                        array. The array will contain the column values starting at array index 0.
  <info>int</info>       <strong>$row</strong>        The row number.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of columns in the result; <info>false</info> on error.


id: odbc_fetch_object
type: function
doc:
<comment>Description:</comment>
  Fetch a result row as an object
  
  Fetch an <info>object</info> from an ODBC query.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result resource from <strong>odbc_exec()</strong>.
  <info>int</info>       <strong>$row</strong>        Optionally choose which row number to retrieve.

<comment>Return:</comment>
  <info>stdClass|false</info>  Returns an object that corresponds to the fetched row, or <info>false</info> if there  are no
                  more rows.

<comment>See Also:</comment>
   * <strong>odbc_fetch_row()</strong>
   * <strong>odbc_fetch_array()</strong>
   * <strong>odbc_num_rows()</strong>


id: odbc_fetch_row
type: function
doc:
<comment>Description:</comment>
  Fetch a row
  
  Fetches a row of the data that was returned by <strong>odbc_do()</strong> or <strong>odbc_exec()</strong>. After <strong>odbc_fetch_row()</strong> is
  called, the fields of that row can be accessed with <strong>odbc_result()</strong>.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int|null</info>  <strong>$row</strong>        If <strong>$row</strong> is not specified, <strong>odbc_fetch_row()</strong> will try to fetch the next row in
                        the result set. Calls to <strong>odbc_fetch_row()</strong> with and without <strong>$row</strong> can be
                        mixed.
                        
                        To step through the result more than once, you can call <strong>odbc_fetch_row()</strong>
                        with <strong>$row</strong> 1, and then continue doing <strong>odbc_fetch_row()</strong> without <strong>$row</strong> to review
                        the result.  If a driver doesn't support fetching rows by number, the <strong>$row</strong>
                        parameter is ignored.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if there was a row, <info>false</info> otherwise.


id: odbc_field_len
type: function
doc:
<comment>Description:</comment>
  Get the length (precision) of a field
  
  Gets the length of the field referenced by number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

<comment>Return:</comment>
  <info>int|false</info>  Returns the field length, or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>odbc_field_scale()</strong> to get the scale of a
    floating point number


id: odbc_field_name
type: function
doc:
<comment>Description:</comment>
  Get the columnname
  
  Gets the name of the field occupying the given column number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

<comment>Return:</comment>
  <info>string|false</info>  Returns the field name as a string, or <info>false</info> on error.


id: odbc_field_num
type: function
doc:
<comment>Description:</comment>
  Return column number
  
  Gets the number of the column slot that corresponds to the named field in the given result
  identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>string</info>    <strong>$field</strong>      The field name.

<comment>Return:</comment>
  <info>int|false</info>  Returns the field number as a integer, or <info>false</info> on error. Field numbering starts at 1.


id: odbc_field_precision
type: function
doc:
<comment>Description:</comment>
  别名 odbc_field_len
  
  此函数是该函数的别名： <strong>odbc_field_len()</strong>.

<comment>See Also:</comment>
   * <strong>odbc_field_scale()</strong> to get the scale of a
    floating point number.


id: odbc_field_scale
type: function
doc:
<comment>Description:</comment>
  Get the scale of a field
  
  Gets the scale of the field referenced by number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

<comment>Return:</comment>
  <info>int|false</info>  Returns the field scale as a integer, or <info>false</info> on error.


id: odbc_field_type
type: function
doc:
<comment>Description:</comment>
  Datatype of a field
  
  Gets the SQL type of the field referenced by number in the given result identifier.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$field</strong>      The field number. Field numbering starts at 1.

<comment>Return:</comment>
  <info>string|false</info>  Returns the field type as a string, or <info>false</info> on error.


id: odbc_foreignkeys
type: function
doc:
<comment>Description:</comment>
  Retrieves a list of foreign keys
  
  Retrieves a list of foreign keys in the specified table or a list of foreign keys in other tables
  that refer to the primary key in the specified table

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>        ODBC 连接标识符，详见
                            <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$pk_catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance) of the primary key table.
  <info>string</info>       <strong>$pk_schema</strong>   The schema ('owner' in ODBC 2 parlance) of the primary key table.
  <info>string</info>       <strong>$pk_table</strong>    The primary key table.
  <info>string</info>       <strong>$fk_catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance) of the foreign key table.
  <info>string</info>       <strong>$fk_schema</strong>   The schema ('owner' in ODBC 2 parlance) of the foreign key table.
  <info>string</info>       <strong>$fk_table</strong>    The foreign key table.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier 或者在失败时返回 <info>false</info>.
                  
                  The result set has the following columns:
                  <return>PKTABLE_CAT</return><return>PKTABLE_SCHEM</return><return>PKTABLE_NAME</return><return>PKCOLUMN_NAME</return><return>FKTABLE_CAT</return><return>FKTABLE_SCHEM</return><return>FKTABLE_NAME</return><return>FKCOLUMN_NAME</return><return>KEY_SEQ</return><return>UPDATE_RULE</return><return>DELETE_RULE</return><return>FK_NAME</return><return>PK_NAME</return><return>DEFERRABILITY</return>
                  Drivers can report additional columns.
                  
                  <return>PKTABLE_CAT</return>
                  
                  <return>PKTABLE_SCHEM</return>
                  
                  <return>PKTABLE_NAME</return>
                  
                  <return>PKCOLUMN_NAME</return>
                  
                  <return>FKTABLE_CAT</return>
                  
                  <return>FKTABLE_SCHEM</return>
                  
                  <return>FKTABLE_NAME</return>
                  
                  <return>FKCOLUMN_NAME</return>
                  
                  <return>KEY_SEQ</return>
                  
                  <return>UPDATE_RULE</return>
                  
                  <return>DELETE_RULE</return>
                  
                  <return>FK_NAME</return>
                  
                  <return>PK_NAME</return>
                  
                  <return>DEFERRABILITY</return>
                  
                  If the foreign keys associated with a primary key are requested, the result set is
                  ordered by <return>FKTABLE_CAT</return>, <return>FKTABLE_SCHEM</return>, <return>FKTABLE_NAME</return> and <return>KEY_SEQ</return>. If the primary
                  keys associated with a foreign key are requested, the result set is ordered by
                  <return>PKTABLE_CAT</return>, <return>PKTABLE_SCHEM</return>, <return>PKTABLE_NAME</return> and <return>KEY_SEQ</return>.
                  
                  If <strong>$pk_table</strong> contains a table name, <strong>odbc_foreignkeys()</strong> returns a result set
                  containing the primary key of the specified table and all of the foreign keys that
                  refer to it.
                  
                  If <strong>$fk_table</strong> contains a table name, <strong>odbc_foreignkeys()</strong> returns a result set
                  containing all of the foreign keys in the specified table and the primary keys (in
                  other tables) to which they refer.
                  
                  If both <strong>$pk_table</strong> and <strong>$fk_table</strong> contain table names, <strong>odbc_foreignkeys()</strong> returns
                  the foreign keys in the table specified in <strong>$fk_table</strong> that refer to the primary key
                  of the table specified in <strong>$pk_table</strong>. This should be one key at most.

<comment>See Also:</comment>
   * <strong>odbc_tables()</strong>
   * <strong>odbc_primarykeys()</strong>


id: odbc_free_result
type: function
doc:
<comment>Description:</comment>
  Free resources associated with a result
  
  Free resources associated with a result.
  
  <strong>odbc_free_result()</strong> only needs to be called if you are worried about using too much memory while
  your script is running. All result memory will automatically be freed when the script is finished.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.

<comment>Return:</comment>
  <info>bool</info>  Always returns <info>true</info>.


id: odbc_gettypeinfo
type: function
doc:
<comment>Description:</comment>
  Retrieves information about data types supported by the data source
  
  Retrieves information about data types supported by the data source.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>       ODBC 连接标识符，详见
                        <strong>odbc_connect()</strong>。
  <info>int</info>       <strong>$data_type</strong>  The data type, which can be used to restrict the information to a single
                        data type.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  TYPE_NAMEDATA_TYPEPRECISIONLITERAL_PREFIXLITERAL_SUFFIXCREATE_PARAMSNULLABLECASE_SENSITIVESEARCHABLEUNSIGNED_ATTRIBUTEMONEYAUTO_INCREMENTLOCAL_TYPE_NAMEMINIMUM_SCALEMAXIMUM_SCALE
                  
                  TYPE_NAME
                  
                  DATA_TYPE
                  
                  PRECISION
                  
                  LITERAL_PREFIX
                  
                  LITERAL_SUFFIX
                  
                  CREATE_PARAMS
                  
                  NULLABLE
                  
                  CASE_SENSITIVE
                  
                  SEARCHABLE
                  
                  UNSIGNED_ATTRIBUTE
                  
                  MONEY
                  
                  AUTO_INCREMENT
                  
                  LOCAL_TYPE_NAME
                  
                  MINIMUM_SCALE
                  
                  MAXIMUM_SCALE
                  
                  The result set is ordered by DATA_TYPE and TYPE_NAME.


id: odbc_longreadlen
type: function
doc:
<comment>Description:</comment>
  Handling of LONG columns
  
  Controls handling of <return>LONG</return>, <return>LONGVARCHAR</return> and <return>LONGVARBINARY</return> columns. The default length can be set
  using the uodbc.defaultlrl php.ini directive.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>int</info>       <strong>$length</strong>     The number of bytes returned to PHP is controlled by the parameter length.
                        If it is set to <return>0</return>, long column data is passed through to the client (i.e.
                        printed) when retrieved with <strong>odbc_result()</strong>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: odbc_next_result
type: function
doc:
<comment>Description:</comment>
  Checks if multiple results are available
  
  Checks if there are more result sets available as well as allowing access to the next result set
  via <strong>odbc_fetch_array()</strong>, <strong>odbc_fetch_row()</strong>, <strong>odbc_result()</strong>, etc.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if there are more result sets, <info>false</info> otherwise.


id: odbc_num_fields
type: function
doc:
<comment>Description:</comment>
  Number of columns in a result
  
  Gets the number of fields (columns) in an ODBC result.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier returned by <strong>odbc_exec()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the number of fields, or -1 on error.


id: odbc_num_rows
type: function
doc:
<comment>Description:</comment>
  Number of rows in a result
  
  Gets the number of rows in a result. For INSERT, UPDATE and DELETE statements <strong>odbc_num_rows()</strong>
  returns the number of rows affected.  For a SELECT clause this <return>can</return> be the number of rows
  available.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier returned by <strong>odbc_exec()</strong>.

<comment>Return:</comment>
  <info>int</info>  Returns the number of rows in an ODBC result. This function will return -1 on error.


id: odbc_pconnect
type: function
doc:
<comment>Description:</comment>
  Open a persistent database connection
  
  Opens a persistent database connection.
  
  This function is much like <strong>odbc_connect()</strong>, except that the connection is not really closed when
  the script has finished.  Future requests for a connection with the same <strong>$dsn</strong>, <strong>$user</strong>, <strong>$password</strong>
  combination (via <strong>odbc_connect()</strong> and <strong>odbc_pconnect()</strong>) can reuse the persistent connection.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC connection,  或者在失败时返回 <info>false</info>. error.

<comment>See Also:</comment>
   * <strong>odbc_connect()</strong>
   * Persistent Database Connections


id: odbc_prepare
type: function
doc:
<comment>Description:</comment>
  Prepares a statement for execution
  
  Prepares a statement for execution. The result identifier can be used later to execute the
  statement with <strong>odbc_execute()</strong>.
  
  Some databases (such as IBM DB2, MS SQL Server, and Oracle) support stored procedures that accept
  parameters of type IN, INOUT, and OUT as defined by the ODBC specification.  However, the Unified
  ODBC driver currently only supports parameters of type IN to stored procedures.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>   ODBC 连接标识符，详见
                    <strong>odbc_connect()</strong>。
  <info>string</info>    <strong>$query</strong>  The query string statement being prepared.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier if the SQL command was prepared successfully.
                  Returns <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>odbc_execute()</strong>


id: odbc_primarykeys
type: function
doc:
<comment>Description:</comment>
  Gets the primary keys for a table
  
  Returns a result identifier that can be used to fetch the column names that comprise the primary
  key for a table.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     ODBC 连接标识符，详见
                         <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance).
  <info>string</info>       <strong>$table</strong>    

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier 或者在失败时返回 <info>false</info>.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>COLUMN_NAME</return><return>KEY_SEQ</return><return>PK_NAME</return> Drivers can report
                  additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>KEY_SEQ</return>
                  
                  <return>PK_NAME</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return> and <return>KEY_SEQ</return>.

<comment>See Also:</comment>
   * <strong>odbc_tables()</strong>
   * <strong>odbc_foreignkeys()</strong>


id: odbc_procedurecolumns
type: function
doc:
<comment>Description:</comment>
  Retrieve information about parameters to procedures
  
  Retrieve information about parameters to procedures.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>       ODBC 连接标识符，详见
                           <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>    The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>     The schema ('owner' in ODBC 2 parlance). 此参数接受下列查询模式：
                           <return>%</return> 来匹配零到多个字符，
                           <return>_</return> 来匹配单个字符。
  <info>string|null</info>  <strong>$procedure</strong>  The proc. 此参数接受下列查询模式：
                           <return>%</return> 来匹配零到多个字符，
                           <return>_</return> 来匹配单个字符。
  <info>string|null</info>  <strong>$column</strong>     The column. 此参数接受下列查询模式：
                           <return>%</return> 来匹配零到多个字符，
                           <return>_</return> 来匹配单个字符。

<comment>Return:</comment>
  <info>resource|false</info>  Returns the list of input and output parameters, as well as the columns that make
                  up the result set for the specified procedures.  Returns an ODBC result identifier
                  或者在失败时返回 <info>false</info>.
                  
                  The result set has the following columns:
                  <return>PROCEDURE_CAT</return><return>PROCEDURE_SCHEM</return><return>PROCEDURE_NAME</return><return>COLUMN_NAME</return><return>COLUMN_TYPE</return><return>DATA_TYPE</return><return>TYPE_NAME</return><return>COLUMN_SIZE</return><return>BUFFER_LENGTH</return><return>DECIMAL_DIGITS</return><return>NUM_PREC_RADIX</return><return>NULLABLE</return><return>REMARKS</return><return>COLUMN_DEF</return><return>SQL_DATA_TYPE</return><return>SQL_DATETIME_SUB</return><return>CHAR_OCTET_LENGTH</return><return>ORDINAL_POSITION</return><return>IS_NULLABLE</return>
                  Drivers can report additional columns.
                  
                  <return>PROCEDURE_CAT</return>
                  
                  <return>PROCEDURE_SCHEM</return>
                  
                  <return>PROCEDURE_NAME</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>COLUMN_TYPE</return>
                  
                  <return>DATA_TYPE</return>
                  
                  <return>TYPE_NAME</return>
                  
                  <return>COLUMN_SIZE</return>
                  
                  <return>BUFFER_LENGTH</return>
                  
                  <return>DECIMAL_DIGITS</return>
                  
                  <return>NUM_PREC_RADIX</return>
                  
                  <return>NULLABLE</return>
                  
                  <return>REMARKS</return>
                  
                  <return>COLUMN_DEF</return>
                  
                  <return>SQL_DATA_TYPE</return>
                  
                  <return>SQL_DATETIME_SUB</return>
                  
                  <return>CHAR_OCTET_LENGTH</return>
                  
                  <return>ORDINAL_POSITION</return>
                  
                  <return>IS_NULLABLE</return>
                  
                  The result set is ordered by <return>PROCEDURE_CAT</return>, <return>PROCEDURE_SCHEM</return>, <return>PROCEDURE_NAME</return> and
                  <return>COLUMN_TYPE</return>.

<comment>See Also:</comment>
   * <strong>odbc_columns()</strong>


id: odbc_procedures
type: function
doc:
<comment>Description:</comment>
  Get the list of procedures stored in a specific data source
  
  Lists all procedures in the requested range.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>       ODBC 连接标识符，详见
                           <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>    The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>     The schema ('owner' in ODBC 2 parlance). 此参数接受下列查询模式：
                           <return>%</return> 来匹配零到多个字符，
                           <return>_</return> 来匹配单个字符。
  <info>string|null</info>  <strong>$procedure</strong>  The name. 此参数接受下列查询模式：
                           <return>%</return> 来匹配零到多个字符，
                           <return>_</return> 来匹配单个字符。

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier containing the information 或者在失败时返回
                  <info>false</info>.
                  
                  The result set has the following columns:
                  <return>PROCEDURE_CAT</return><return>PROCEDURE_SCHEM</return><return>PROCEDURE_NAME</return><return>NUM_INPUT_PARAMS</return><return>NUM_OUTPUT_PARAMS</return><return>NUM_RESULT_SETS</return><return>REMARKS</return><return>PROCEDURE_TYPE</return>
                  Drivers can report additional columns.
                  
                  <return>PROCEDURE_CAT</return>
                  
                  <return>PROCEDURE_SCHEM</return>
                  
                  <return>PROCEDURE_NAME</return>
                  
                  <return>NUM_INPUT_PARAMS</return>
                  
                  <return>NUM_OUTPUT_PARAMS</return>
                  
                  <return>NUM_RESULT_SETS</return>
                  
                  <return>REMARKS</return>
                  
                  <return>PROCEDURE_TYPE</return>
                  
                  The result set is ordered by <return>PROCEDURE_CAT</return>, <return>PROCEDURE_SCHEMA</return> and <return>PROCEDURE_NAME</return>.

<comment>See Also:</comment>
   * <strong>odbc_procedurecolumns()</strong>
   * <strong>odbc_tables()</strong>


id: odbc_result
type: function
doc:
<comment>Description:</comment>
  Get result data
  
  Get result data

<comment>Param:</comment>
  <info>resource</info>    <strong>$statement</strong>  The ODBC <info>resource</info>.
  <info>string|int</info>  <strong>$field</strong>      The field name being retrieved. It can either be an integer containing the
                          column number of the field you want; or it can be a string containing the
                          name of the field.

<comment>Return:</comment>
  <info>string|bool|null</info>  Returns the string contents of the field, <info>false</info> on error, <info>null</info> for NULL data, or
                    <info>true</info> for binary data.


id: odbc_result_all
type: function
doc:
<comment>Description:</comment>
  Print result as HTML table
  
  Prints all rows from a result identifier produced by <strong>odbc_exec()</strong>. The result is printed in HTML
  table format. The data is not escaped.
  
  This function is not supposed to be used in production environments; it is merely meant for
  development purposes, to get a result set quickly rendered.

<comment>Param:</comment>
  <info>resource</info>  <strong>$statement</strong>  The result identifier.
  <info>string</info>    <strong>$format</strong>     Additional overall table formatting.

<comment>Return:</comment>
  <info>int|false</info>  Returns the number of rows in the result or <info>false</info> on error.


id: odbc_rollback
type: function
doc:
<comment>Description:</comment>
  Rollback a transaction
  
  Rolls back all pending statements on the connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>  ODBC 连接标识符，详见
                   <strong>odbc_connect()</strong>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: odbc_setoption
type: function
doc:
<comment>Description:</comment>
  Adjust ODBC settings
  
  This function allows fiddling with the ODBC options for a particular connection or query result.
  It was written to help find work around to problems in quirky ODBC drivers.  You should probably
  only use this function if you are an ODBC programmer and understand the effects the various
  options will have.  You will certainly need a good ODBC reference to explain all the different
  options and values that can be used.  Different driver versions support different options.
  
  Because the effects may vary depending on the ODBC driver, use of this function in scripts to be
  made publicly available is strongly discouraged.  Also, some ODBC options are not available to
  this function because they must be set before the connection is established or the query is
  prepared.  However, if on a particular job it can make PHP work so your boss doesn't tell you to
  use a commercial product, that's all that really matters.

<comment>Param:</comment>
  <info>resource</info>  <strong>$odbc</strong>    Is a connection id or result id on which to change the settings. For
                     SQLSetConnectOption(), this is a connection id. For SQLSetStmtOption(), this is
                     a result id.
  <info>int</info>       <strong>$which</strong>   Is the ODBC function to use. The value should be 1 for SQLSetConnectOption()
                     and 2 for SQLSetStmtOption().
  <info>int</info>       <strong>$option</strong>  The option to set.
  <info>int</info>       <strong>$value</strong>   The value for the given <strong>$option</strong>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: odbc_specialcolumns
type: function
doc:
<comment>Description:</comment>
  Retrieves special columns
  
  Retrieves either the optimal set of columns that uniquely identifies a row in the table, or
  columns that are automatically updated when any value in the row is updated by a transaction.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>      ODBC 连接标识符，详见
                          <strong>odbc_connect()</strong>。
  <info>int</info>          <strong>$type</strong>      When the type argument is <info>SQL_BEST_ROWID</info>, <strong>odbc_specialcolumns()</strong> returns
                          the column or columns that uniquely identify each row in the table.
                          
                          When the type argument is <info>SQL_ROWVER</info>, <strong>odbc_specialcolumns()</strong> returns the
                          column or columns in the specified table, if any, that are automatically
                          updated by the data source when any value in the row is updated by any
                          transaction.
  <info>string|null</info>  <strong>$catalog</strong>   The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>    The schema ('owner' in ODBC 2 parlance).
  <info>string</info>       <strong>$table</strong>     The table.
  <info>int</info>          <strong>$scope</strong>     The scope, which orders the result set. One of <info>SQL_SCOPE_CURROW</info>,
                          <info>SQL_SCOPE_TRANSACTION</info> or <info>SQL_SCOPE_SESSION</info>.
  <info>int</info>          <strong>$nullable</strong>  Determines whether to return special columns that can have a NULL value.
                          One of <info>SQL_NO_NULLS</info> or <info>SQL_NULLABLE</info>.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier or <info>false</info> on failure.
                  
                  The result set has the following columns:
                  <return>SCOPE</return><return>COLUMN_NAME</return><return>DATA_TYPE</return><return>TYPE_NAME</return><return>COLUMN_SIZE</return><return>BUFFER_LENGTH</return><return>DECIMAL_DIGITS</return><return>PSEUDO_COLUMN</return>
                  Drivers can report additional columns.
                  
                  <return>SCOPE</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>DATA_TYPE</return>
                  
                  <return>TYPE_NAME</return>
                  
                  <return>COLUMN_SIZE</return>
                  
                  <return>BUFFER_LENGTH</return>
                  
                  <return>DECIMAL_DIGITS</return>
                  
                  <return>PSEUDO_COLUMN</return>
                  
                  The result set is ordered by <return>SCOPE</return>.

<comment>See Also:</comment>
   * <strong>odbc_tables()</strong>


id: odbc_statistics
type: function
doc:
<comment>Description:</comment>
  Retrieve statistics about a table
  
  Get statistics about a table and its indexes.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>      ODBC 连接标识符，详见
                          <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>   The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>    The schema ('owner' in ODBC 2 parlance).
  <info>string</info>       <strong>$table</strong>     The table name.
  <info>int</info>          <strong>$unique</strong>    The type of the index. One of <info>SQL_INDEX_UNIQUE</info> or <info>SQL_INDEX_ALL</info>.
  <info>int</info>          <strong>$accuracy</strong>  One of <info>SQL_ENSURE</info> or <info>SQL_QUICK</info>. The latter requests that the driver
                          retrieve the <return>CARDINALITY</return> and <return>PAGES</return> only if they are readily available from
                          the server.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier 或者在失败时返回 <info>false</info>.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>NON_UNIQUE</return><return>INDEX_QUALIFIER</return><return>INDEX_NAME</return><return>TYPE</return><return>ORDINAL_POSITION</return><return>COLUMN_NAME</return><return>ASC_OR_DESC</return><return>CARDINALITY</return><return>PAGES</return><return>FILTER_CONDITION</return>
                  Drivers can report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>NON_UNIQUE</return>
                  
                  <return>INDEX_QUALIFIER</return>
                  
                  <return>INDEX_NAME</return>
                  
                  <return>TYPE</return>
                  
                  <return>ORDINAL_POSITION</return>
                  
                  <return>COLUMN_NAME</return>
                  
                  <return>ASC_OR_DESC</return>
                  
                  <return>CARDINALITY</return>
                  
                  <return>PAGES</return>
                  
                  <return>FILTER_CONDITION</return>
                  
                  The result set is ordered by <return>NON_UNIQUE</return>, <return>TYPE</return>, <return>INDEX_QUALIFIER</return>, <return>INDEX_NAME</return> and
                  <return>ORDINAL_POSITION</return>.

<comment>See Also:</comment>
   * <strong>odbc_tables()</strong>


id: odbc_tableprivileges
type: function
doc:
<comment>Description:</comment>
  Lists tables and the privileges associated with each table
  
  Lists tables in the requested range and the privileges associated with each table.

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     ODBC 连接标识符，详见
                         <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string</info>       <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。
  <info>string</info>       <strong>$table</strong>    The name. 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。

<comment>Return:</comment>
  <info>resource|false</info>  An ODBC result identifier 或者在失败时返回 <info>false</info>.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>GRANTOR</return><return>GRANTEE</return><return>PRIVILEGE</return><return>IS_GRANTABLE</return> Drivers can
                  report additional columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>GRANTOR</return>
                  
                  <return>GRANTEE</return>
                  
                  <return>PRIVILEGE</return>
                  
                  <return>IS_GRANTABLE</return>
                  
                  The result set is ordered by <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return>, <return>TABLE_NAME</return>, <return>PRIVILEGE</return> and
                  <return>GRANTEE</return>.

<comment>See Also:</comment>
   * <strong>odbc_tables()</strong>


id: odbc_tables
type: function
doc:
<comment>Description:</comment>
  Get the list of table names stored in a specific data source
  
  Lists all tables in the requested range.
  
  To support enumeration of qualifiers, owners, and table types, the following special semantics for
  the <strong>$catalog</strong>, <strong>$schema</strong>, <strong>$table</strong>, and <strong>$table_type</strong> are available:  If <strong>$catalog</strong> is a single percent
  character (%) and <strong>$schema</strong> and <strong>$table</strong> are empty strings, then the result set contains a list of
  valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain
  NULLs.)  If <strong>$schema</strong> is a single percent character (%) and <strong>$catalog</strong> and <strong>$table</strong> are empty strings,
  then the result set contains a list of valid owners for the data source. (All columns except the
  TABLE_OWNER column contain NULLs.)  If <strong>$table_type</strong> is a single percent character (%) and <strong>$catalog</strong>,
  <strong>$schema</strong> and <strong>$table</strong> are empty strings, then the result set contains a list of valid table types for
  the data source. (All columns except the TABLE_TYPE column contain NULLs.)
  
  If <strong>$catalog</strong> is a single percent character (%) and <strong>$schema</strong> and <strong>$table</strong> are empty strings, then the
  result set contains a list of valid qualifiers for the data source. (All columns except the
  TABLE_QUALIFIER column contain NULLs.)
  
  If <strong>$schema</strong> is a single percent character (%) and <strong>$catalog</strong> and <strong>$table</strong> are empty strings, then the
  result set contains a list of valid owners for the data source. (All columns except the
  TABLE_OWNER column contain NULLs.)
  
  If <strong>$table_type</strong> is a single percent character (%) and <strong>$catalog</strong>, <strong>$schema</strong> and <strong>$table</strong> are empty
  strings, then the result set contains a list of valid table types for the data source. (All
  columns except the TABLE_TYPE column contain NULLs.)

<comment>Param:</comment>
  <info>resource</info>     <strong>$odbc</strong>     ODBC 连接标识符，详见
                         <strong>odbc_connect()</strong>。
  <info>string|null</info>  <strong>$catalog</strong>  The catalog ('qualifier' in ODBC 2 parlance).
  <info>string|null</info>  <strong>$schema</strong>   The schema ('owner' in ODBC 2 parlance). 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。
  <info>string|null</info>  <strong>$table</strong>    The name. 此参数接受下列查询模式：
                         <return>%</return> 来匹配零到多个字符，
                         <return>_</return> 来匹配单个字符。
  <info>string|null</info>  <strong>$types</strong>    If <strong>$table_type</strong> is not an empty string, it must contain a list of
                         comma-separated values for the types of interest; each value may be
                         enclosed in single quotes (<return>'</return>) or unquoted. For example, <return>'TABLE','VIEW'</return> or
                         <return>TABLE, VIEW</return>.  If the data source does not support a specified table type,
                         <strong>odbc_tables()</strong> does not return any results for that type.

<comment>Return:</comment>
  <info>resource|false</info>  Returns an ODBC result identifier containing the information  或者在失败时返回
                  <info>false</info>.
                  
                  The result set has the following columns:
                  <return>TABLE_CAT</return><return>TABLE_SCHEM</return><return>TABLE_NAME</return><return>TABLE_TYPE</return><return>REMARKS</return> Drivers can report additional
                  columns.
                  
                  <return>TABLE_CAT</return>
                  
                  <return>TABLE_SCHEM</return>
                  
                  <return>TABLE_NAME</return>
                  
                  <return>TABLE_TYPE</return>
                  
                  <return>REMARKS</return>
                  
                  The result set is ordered by <return>TABLE_TYPE</return>, <return>TABLE_CAT</return>, <return>TABLE_SCHEM</return> and <return>TABLE_NAME</return>.

<comment>See Also:</comment>
   * <strong>odbc_tableprivileges()</strong>
   * <strong>odbc_columns()</strong>
   * <strong>odbc_specialcolumns()</strong>
   * <strong>odbc_statistics()</strong>
   * <strong>odbc_procedures()</strong>


id: opcache_compile_file
type: function
doc:
<comment>Description:</comment>
  无需运行，即可编译并缓存 PHP 脚本
  
  该函数可以用于在不用运行某个 PHP 脚本的情况下，编译该 PHP 脚本并将其添加到字节码缓存中去。 该函数
  可用于在 Web 服务器重启之后初始化缓存，以供后续请求调用。

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  被编译的 PHP 脚本的路径。

<comment>Return:</comment>
  <info>bool</info>  如果 <strong>$filename</strong> 被成功编译，则返回 <info>true</info>  或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>opcache_invalidate()</strong>


id: opcache_get_configuration
type: function
doc:
<comment>Description:</comment>
  获取缓存的配置信息
  
  该函数将返回缓存实例的配置信息。

<comment>Return:</comment>
  <info>array|false</info>  返回一个数组，该数组里包含了缓存的初始化信息，黑名单和版本号。

<comment>See Also:</comment>
   * <strong>opcache_get_status()</strong>


id: opcache_get_status
type: function
doc:
<comment>Description:</comment>
  获取缓存的状态信息
  
  该函数将返回内存中缓存实例的状态信息。不会返回有关文件缓存的任何信息。

<comment>Param:</comment>
  <info>bool</info>  <strong>$include_scripts</strong>  包含脚本的具体声明信息。

<comment>Return:</comment>
  <info>array|false</info>  返回可能包含脚本特定状态信息的数组， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>opcache_get_configuration()</strong>


id: opcache_invalidate
type: function
doc:
<comment>Description:</comment>
  废除脚本缓存
  
  该函数的作用是使得指定脚本的字节码缓存失效。如果 <strong>$force</strong> 没有设置或者传入的是 <info>false</info>，那么只有当脚本
  的修改时间比对应字节码的时间更新，脚本的缓存才会失效。此函数仅使内存缓存无效，而不是文件缓存。

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  缓存需要被作废对应的脚本路径
  <info>bool</info>    <strong>$force</strong>     如果该参数设置为<info>true</info>，那么不管是否必要，该脚本的缓存都将被废除。

<comment>Return:</comment>
  <info>bool</info>  如果 <strong>$filename</strong> 的字节码缓存失效设置成功或者该脚本本来就没有缓存，则返回 <info>true</info>；如果字节码缓存
        被禁用，则返回<info>false</info>。

<comment>See Also:</comment>
   * <strong>opcache_compile_file()</strong>
   * <strong>opcache_reset()</strong>


id: opcache_is_script_cached
type: function
doc:
<comment>Description:</comment>
  Tells whether a script is cached in OPCache
  
  This function checks if a PHP script has been cached in OPCache. This can be used to more easily
  detect the "warming" of the cache for a particular script. This function only checks in-memory
  cache, not file cache.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  The path to the PHP script to be checked.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if <strong>$filename</strong> is cached in OPCache, <info>false</info> otherwise.

<comment>See Also:</comment>
   * <strong>opcache_compile_file()</strong>


id: opcache_reset
type: function
doc:
<comment>Description:</comment>
  重置字节码缓存的内容
  
  该函数将重置整个字节码缓存。在调用 <strong>opcache_reset()</strong> 之后，所有的脚本将会重新载入并且在下次命中的时
  候重新解析。此函数仅重置内存中的缓存，不会重置文件缓存。

<comment>Return:</comment>
  <info>bool</info>  如果重置字节码缓存成功，则返回 <info>true</info>；如果字节码缓存被禁用或等待重启或正在重启（参阅
        <strong>opcache_get_status()</strong>），则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>opcache_invalidate()</strong>
   * <strong>opcache_get_status()</strong>


id: openal_buffer_create
type: function
doc:
<comment>Description:</comment>
  Generate OpenAL buffer

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Buffer) resource on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_buffer_loadwav()</strong>
   * <strong>openal_buffer_data()</strong>


id: openal_buffer_data
type: function
doc:
<comment>Description:</comment>
  Load a buffer with data

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>  An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).
  <info>int</info>       <strong>$format</strong>  Format of <strong>$data</strong>, one of:  <info>AL_FORMAT_MONO8</info>, <info>AL_FORMAT_MONO16</info>, <info>AL_FORMAT_STEREO8</info>
                     和  <info>AL_FORMAT_STEREO16</info>
  <info>string</info>    <strong>$data</strong>    Block of binary audio data in the <strong>$format</strong> and <strong>$freq</strong> specified.
  <info>int</info>       <strong>$freq</strong>    Frequency of <strong>$data</strong> given in Hz.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_buffer_loadwav()</strong>
   * <strong>openal_stream()</strong>


id: openal_buffer_destroy
type: function
doc:
<comment>Description:</comment>
  Destroys an OpenAL buffer

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>  An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_buffer_create()</strong>


id: openal_buffer_get
type: function
doc:
<comment>Description:</comment>
  Retrieve an OpenAL buffer property

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>    An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).
  <info>int</info>       <strong>$property</strong>  Specific property, one of: <info>AL_FREQUENCY</info>, <info>AL_BITS</info>, <info>AL_CHANNELS</info> 和  <info>AL_SIZE</info>.

<comment>Return:</comment>
  <info>int|false</info>  Returns an integer value appropriate to the <strong>$property</strong> requested 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>openal_buffer_create()</strong>


id: openal_buffer_loadwav
type: function
doc:
<comment>Description:</comment>
  Load a .wav file into a buffer

<comment>Param:</comment>
  <info>resource</info>  <strong>$buffer</strong>   An Open AL(Buffer) resource (previously created by <strong>openal_buffer_create()</strong>).
  <info>string</info>    <strong>$wavfile</strong>  Path to .wav file on local file system.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_buffer_data()</strong>
   * <strong>openal_stream()</strong>


id: openal_context_create
type: function
doc:
<comment>Description:</comment>
  Create an audio processing context

<comment>Param:</comment>
  <info>resource</info>  <strong>$device</strong>  An Open AL(Device) resource (previously created by <strong>openal_device_open()</strong>).

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Context) resource on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_device_open()</strong>
   * <strong>openal_context_destroy()</strong>


id: openal_context_current
type: function
doc:
<comment>Description:</comment>
  Make the specified context current

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_context_create()</strong>


id: openal_context_destroy
type: function
doc:
<comment>Description:</comment>
  Destroys a context

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_context_create()</strong>


id: openal_context_process
type: function
doc:
<comment>Description:</comment>
  Process the specified context

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_context_create()</strong>
   * <strong>openal_context_current()</strong>
   * <strong>openal_context_suspend()</strong>


id: openal_context_suspend
type: function
doc:
<comment>Description:</comment>
  Suspend the specified context

<comment>Param:</comment>
  <info>resource</info>  <strong>$context</strong>  An Open AL(Context) resource (previously created by <strong>openal_context_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_context_create()</strong>
   * <strong>openal_context_current()</strong>
   * <strong>openal_context_process()</strong>


id: openal_device_close
type: function
doc:
<comment>Description:</comment>
  Close an OpenAL device

<comment>Param:</comment>
  <info>resource</info>  <strong>$device</strong>  An Open AL(Device) resource (previously created by <strong>openal_device_open()</strong>) to be
                     closed.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_device_open()</strong>


id: openal_device_open
type: function
doc:
<comment>Description:</comment>
  Initialize the OpenAL audio layer

<comment>Param:</comment>
  <info>string</info>  <strong>$device_desc</strong>  Open an audio device optionally specified by <strong>$device_desc</strong>. If <strong>$device_desc</strong>
                        is not specified the first available audio device will be used.

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Device) resource on success or  <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_device_close()</strong>
   * <strong>openal_context_create()</strong>


id: openal_listener_get
type: function
doc:
<comment>Description:</comment>
  Retrieve a listener property

<comment>Param:</comment>
  <info>int</info>  <strong>$property</strong>  Property to retrieve, one of: <info>AL_GAIN</info> (float), <info>AL_POSITION</info>
                  (array(float,float,float)), <info>AL_VELOCITY</info> (array(float,float,float)) 和
                  <info>AL_ORIENTATION</info> (array(float,float,float)).

<comment>Return:</comment>
  <info>mixed</info>  Returns a float or array of floats (as appropriate) 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>openal_listener_set()</strong>


id: openal_listener_set
type: function
doc:
<comment>Description:</comment>
  Set a listener property

<comment>Param:</comment>
  <info>int</info>    <strong>$property</strong>  Property to set, one of: <info>AL_GAIN</info> (float), <info>AL_POSITION</info>
                    (array(float,float,float)), <info>AL_VELOCITY</info> (array(float,float,float)) 和
                    <info>AL_ORIENTATION</info> (array(float,float,float)).
  <info>mixed</info>  <strong>$setting</strong>   Value to set, either float, or an array of floats as appropriate.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_listener_get()</strong>


id: openal_source_create
type: function
doc:
<comment>Description:</comment>
  Generate a source resource

<comment>Return:</comment>
  <info>resource</info>  Returns an Open AL(Source) resource on success or <info>false</info> on failure.

<comment>See Also:</comment>
   * <strong>openal_source_set()</strong>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_destroy()</strong>


id: openal_source_destroy
type: function
doc:
<comment>Description:</comment>
  Destroy a source resource

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>


id: openal_source_get
type: function
doc:
<comment>Description:</comment>
  Retrieve an OpenAL source property

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>    An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int</info>       <strong>$property</strong>  Property to get, one of: <info>AL_SOURCE_RELATIVE</info> (int), <info>AL_SOURCE_STATE</info> (int),
                       <info>AL_PITCH</info> (float), <info>AL_GAIN</info> (float), <info>AL_MIN_GAIN</info> (float), <info>AL_MAX_GAIN</info> (float),
                       <info>AL_MAX_DISTANCE</info> (float), <info>AL_ROLLOFF_FACTOR</info> (float), <info>AL_CONE_OUTER_GAIN</info>
                       (float), <info>AL_CONE_INNER_ANGLE</info> (float), <info>AL_CONE_OUTER_ANGLE</info> (float),
                       <info>AL_REFERENCE_DISTANCE</info> (float), <info>AL_POSITION</info> (array(float,float,float)),
                       <info>AL_VELOCITY</info> (array(float,float,float)), <info>AL_DIRECTION</info>
                       (array(float,float,float)).

<comment>Return:</comment>
  <info>mixed</info>  Returns the type associated with the property being retrieved 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>openal_source_set()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_pause
type: function
doc:
<comment>Description:</comment>
  Pause the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_source_play
type: function
doc:
<comment>Description:</comment>
  Start playing the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_source_rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_source_stop()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_set
type: function
doc:
<comment>Description:</comment>
  Set source property

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>    An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int</info>       <strong>$property</strong>  Property to set, one of: <info>AL_BUFFER</info> (OpenAL(Source)), <info>AL_LOOPING</info> (bool),
                       <info>AL_SOURCE_RELATIVE</info> (int), <info>AL_SOURCE_STATE</info> (int), <info>AL_PITCH</info> (float), <info>AL_GAIN</info>
                       (float), <info>AL_MIN_GAIN</info> (float), <info>AL_MAX_GAIN</info> (float), <info>AL_MAX_DISTANCE</info> (float),
                       <info>AL_ROLLOFF_FACTOR</info> (float), <info>AL_CONE_OUTER_GAIN</info> (float), <info>AL_CONE_INNER_ANGLE</info>
                       (float), <info>AL_CONE_OUTER_ANGLE</info> (float), <info>AL_REFERENCE_DISTANCE</info> (float),
                       <info>AL_POSITION</info> (array(float,float,float)), <info>AL_VELOCITY</info>
                       (array(float,float,float)), <info>AL_DIRECTION</info> (array(float,float,float)).
  <info>mixed</info>     <strong>$setting</strong>   Value to assign to specified <strong>$property</strong>. Refer to the description of <strong>$property</strong>
                       for a description of the value(s) expected.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>openal_source_get()</strong>
   * <strong>openal_source_play()</strong>


id: openal_source_stop
type: function
doc:
<comment>Description:</comment>
  Stop playing the source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openal_source_play()</strong>
   * <strong>openal_source_pause()</strong>
   * <strong>openal_source_rewind()</strong>


id: openal_stream
type: function
doc:
<comment>Description:</comment>
  Begin streaming on a source

<comment>Param:</comment>
  <info>resource</info>  <strong>$source</strong>  An Open AL(Source) resource (previously created by <strong>openal_source_create()</strong>).
  <info>int</info>       <strong>$format</strong>  Format of <strong>$data</strong>, one of: <info>AL_FORMAT_MONO8</info>, <info>AL_FORMAT_MONO16</info>, <info>AL_FORMAT_STEREO8</info>
                     和  <info>AL_FORMAT_STEREO16</info>
  <info>int</info>       <strong>$rate</strong>    Frequency of data to stream given in Hz.

<comment>Return:</comment>
  <info>resource|false</info>  Returns a stream resource on success 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>openal_source_create()</strong>
   * <strong>fwrite()</strong>


id: opendir
type: function
doc:
<comment>Description:</comment>
  打开目录句柄
  
  打开一个目录句柄，可用于之后的 <strong>closedir()</strong>，<strong>readdir()</strong> 和 <strong>rewinddir()</strong> 调用中。

<comment>Param:</comment>
  <info>string</info>         <strong>$directory</strong>  要打开的目录路径
  <info>resource|null</info>  <strong>$context</strong>    <strong>$context</strong> 参数的说明见手册中的 Streams API 一章。

<comment>Return:</comment>
  <info>resource|false</info>  如果成功则返回目录句柄的 <info>resource</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>is_dir()</strong>
   * <strong>readdir()</strong>
   * <strong>dir()</strong>


id: openlog
type: function
doc:
<comment>Description:</comment>
  Open connection to system logger
  
  <strong>openlog()</strong> opens a connection to the system logger for a program.
  
  The use of <strong>openlog()</strong> is optional. It will automatically be called by <strong>syslog()</strong> if necessary, in
  which case <strong>$prefix</strong> will default to <info>false</info>.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>    The string <strong>$prefix</strong> is added to each message.
  <info>int</info>     <strong>$flags</strong>     The <strong>$flags</strong> argument is used to indicate what logging options will be used when
                     generating a log message. <strong>openlog()</strong> OptionsConstantDescription<info>LOG_CONS</info> if there
                     is an error while sending data to the system logger, write directly to the
                     system console <info>LOG_NDELAY</info> open the connection to the logger immediately
                     <info>LOG_ODELAY</info> (default) delay opening the connection until the first message is
                     logged <info>LOG_PERROR</info>print log message also to standard error<info>LOG_PID</info>include PID
                     with each message You can use one or more of these options. When using multiple
                     options you need to <return>OR</return> them, i.e. to open the connection immediately, write to
                     the console and include the PID in each message, you will use: <return>LOG_CONS |
                     LOG_NDELAY | LOG_PID</return>
  <info>int</info>     <strong>$facility</strong>  The <strong>$facility</strong> argument is used to specify what type of program is logging the
                     message. This allows you to specify (in your machine's syslog configuration)
                     how messages coming from different facilities will be handled. <strong>openlog()</strong>
                     FacilitiesConstantDescription<info>LOG_AUTH</info> security/authorization messages (use
                     <info>LOG_AUTHPRIV</info> instead in systems where that constant is defined)
                     <info>LOG_AUTHPRIV</info>security/authorization messages (private)<info>LOG_CRON</info>clock daemon (cron
                     and at)<info>LOG_DAEMON</info>other system daemons<info>LOG_KERN</info>kernel messages<info>LOG_LOCAL0</info> ...
                     <info>LOG_LOCAL7</info>reserved for local use, these are not available in Windows<info>LOG_LPR</info>line
                     printer subsystem<info>LOG_MAIL</info>mail subsystem<info>LOG_NEWS</info>USENET news
                     subsystem<info>LOG_SYSLOG</info>messages generated internally by syslogd<info>LOG_USER</info>generic
                     user-level messages<info>LOG_UUCP</info>UUCP subsystem
                     
                     <info>LOG_USER</info> is the only valid log type under Windows operating systems

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>syslog()</strong>
   * <strong>closelog()</strong>


id: openssl_cipher_iv_length
type: function
doc:
<comment>Description:</comment>
  获取密码iv长度
  
  获取密码初始化向量(iv)长度。

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher_algo</strong>  密码的方法，更多值查看 <strong>openssl_get_cipher_methods()</strong> 函数。

<comment>Return:</comment>
  <info>int|false</info>  成功，返回密码长度, 失败返回 <info>false</info> .


id: openssl_cipher_key_length
type: function
doc:
<comment>Description:</comment>
  Gets the cipher key length
  
  Gets the cipher key length.

<comment>Param:</comment>
  <info>string</info>  <strong>$cipher_algo</strong>  The cipher method, see <strong>openssl_get_cipher_methods()</strong> for a list of potential
                        values.

<comment>Return:</comment>
  <info>int|false</info>  Returns the cipher length on success,  或者在失败时返回 <info>false</info>.


id: openssl_cms_decrypt
type: function
doc:
<comment>Description:</comment>
  Decrypt a CMS message
  
  Decrypts a CMS message.

<comment>Param:</comment>
  <info>string</info>                                                     <strong>$input_filename</strong>   The name of a file
                                                                               containing encrypted
                                                                               content.
  <info>string</info>                                                     <strong>$output_filename</strong>  The name of the file
                                                                               to deposit the
                                                                               decrypted content.
  <info>OpenSSLCertificate|string</info>                                  <strong>$certificate</strong>      The name of the file
                                                                               containing a
                                                                               certificate of the
                                                                               recipient.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null</info>  <strong>$private_key</strong>      The name of the file
                                                                               containing a PKCS#8
                                                                               key.
  <info>int</info>                                                        <strong>$encoding</strong>         The encoding of the
                                                                               input file. One of
                                                                               <info>OPENSSL_ENCODING_SMIME</info>,
                                                                               <info>OPENSSL_ENCODING_DER</info>
                                                                               or
                                                                               <info>OPENSSL_ENCODING_PEM</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_cms_encrypt
type: function
doc:
<comment>Description:</comment>
  Encrypt a CMS message
  
  This function encrypts content to one or more recipients, based on the certificates that are
  passed to it.

<comment>Param:</comment>
  <info>string</info>                           <strong>$input_filename</strong>   The file to be encrypted.
  <info>string</info>                           <strong>$output_filename</strong>  The output file.
  <info>OpenSSLCertificate|array|string</info>  <strong>$certificate</strong>      Recipients to encrypt to.
  <info>array|null</info>                       <strong>$headers</strong>          Headers to include when S/MIME is used.
  <info>int</info>                              <strong>$flags</strong>            Flags to be passed to CMS_sign.
  <info>int</info>                              <strong>$encoding</strong>         An encoding to output. One of
                                                     <info>OPENSSL_ENCODING_SMIME</info>, <info>OPENSSL_ENCODING_DER</info> or
                                                     <info>OPENSSL_ENCODING_PEM</info>.
  <info>int</info>                              <strong>$cipher_algo</strong>      A cypher to use.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_cms_read
type: function
doc:
<comment>Description:</comment>
  Export the CMS file to an array of PEM certificates
  
  Performs the exact analog to <strong>openssl_pkcs7_read()</strong>.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$input_filename</strong>  
  <info>array</info>   <strong>$certificates</strong>    

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_cms_sign
type: function
doc:
<comment>Description:</comment>
  Sign a file
  
  This function signs a file with an X.509 certificate and key.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$input_filename</strong>                   The name
                                                                                          of the
                                                                                          file to be
                                                                                          signed.
  <info>string</info>                                                <strong>$output_filename</strong>                  The name
                                                                                          of the
                                                                                          file to
                                                                                          deposit
                                                                                          the
                                                                                          results.
  <info>OpenSSLCertificate|string</info>                             <strong>$certificate</strong>                      The
                                                                                          signing
                                                                                          certificate.
                                                                                          See
                                                                                          Key/Certificate
                                                                                          parameters
                                                                                          for a list
                                                                                          of valid
                                                                                          values.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>                      The key
                                                                                          associated
                                                                                          with
                                                                                          <strong>$certificate</strong>.
                                                                                          See
                                                                                          Key/Certificate
                                                                                          parameters
                                                                                          for a list
                                                                                          of valid
                                                                                          values.
  <info>array|null</info>                                            <strong>$headers</strong>                          An array
                                                                                          of headers
                                                                                          to be
                                                                                          included
                                                                                          in S/MIME
                                                                                          output.
  <info>int</info>                                                   <strong>$flags</strong>                            Flags to
                                                                                          be passed
                                                                                          to
                                                                                          <strong>cms_sign()</strong>.
  <info>int</info>                                                   <strong>$encoding</strong>                         The
                                                                                          encoding
                                                                                          of the
                                                                                          output
                                                                                          file. One
                                                                                          of
                                                                                          <info>OPENSSL_ENCODING_SMIME</info>,
                                                                                          <info>OPENSSL_ENCODING_DER</info>
                                                                                          or
                                                                                          <info>OPENSSL_ENCODING_PEM</info>.
  <info>string|null</info>                                           <strong>$untrusted_certificates_filename</strong>  
                                                                                          Intermediate
                                                                                          certificates
                                                                                          to be
                                                                                          included
                                                                                          in the
                                                                                          signature.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_cms_verify
type: function
doc:
<comment>Description:</comment>
  Verify a CMS signature
  
  This function verifies a CMS signature, either attached or detached, with the specified encoding.

<comment>Param:</comment>
  <info>string</info>       <strong>$input_filename</strong>                   The input file.
  <info>int</info>          <strong>$flags</strong>                            Flags to pass to <strong>cms_verify()</strong>.
  <info>string|null</info>  <strong>$certificates</strong>                     A file with the signer certificate and optionally
                                                 intermediate certificates.
  <info>array</info>        <strong>$ca_info</strong>                          An array containing self-signed certificate
                                                 authority certificates.
  <info>string|null</info>  <strong>$untrusted_certificates_filename</strong>  A file containing additional intermediate
                                                 certificates.
  <info>string|null</info>  <strong>$content</strong>                          A file pointing to the content when signatures are
                                                 detached.
  <info>string|null</info>  <strong>$pk7</strong>                              
  <info>string|null</info>  <strong>$sigfile</strong>                          A file to save the signature to.
  <info>int</info>          <strong>$encoding</strong>                         The encoding of the input file. One of
                                                 <info>OPENSSL_ENCODING_SMIME</info>, <info>OPENSSL_ENCODING_DER</info> or
                                                 <info>OPENSSL_ENCODING_PEM</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_csr_export
type: function
doc:
<comment>Description:</comment>
  将 CSR 作为字符串导出
  
  <strong>openssl_csr_export()</strong> 获取证书签名请求（<strong>$csr</strong>）并通过引用保存其 PEM 格式的字符串（<strong>$output</strong>）。

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>      See CSR parameters for a list of valid values.
  <info>string</info>                                   <strong>$output</strong>   在成功时，该字符串将包含 PEM 编码的 CSR。
  <info>bool</info>                                     <strong>$no_text</strong>  可选参数 <strong>$notext</strong> 影响输出的冗余度。如果设为
                                                     <info>false</info>，输出内容将包含附加的人类可读信息。
                                                     <strong>$notext</strong> 的缺省值为 <info>true</info>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_csr_export_to_file()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_csr_export_to_file
type: function
doc:
<comment>Description:</comment>
  将 CSR 导出到文件
  
  <strong>openssl_csr_export_to_file()</strong> 获取证书签名请求（<strong>$csr</strong>）并将之保存在以 <strong>$output_filename</strong> 命名的 PEM 格
  式文件中。

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>              See CSR parameters for a list of valid
                                                             values.
  <info>string</info>                                   <strong>$output_filename</strong>  输出文件的路径。
  <info>bool</info>                                     <strong>$no_text</strong>          可选参数 <strong>$notext</strong> 影响输出的冗余度。如果
                                                             设为
                                                             <info>false</info>，输出内容将包含附加的人类可读信
                                                             息。<strong>$notext</strong> 的缺省值为 <info>true</info>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_csr_export()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_csr_get_public_key
type: function
doc:
<comment>Description:</comment>
  返回 CSR 的公钥
  
  <strong>openssl_csr_get_public_key()</strong> 从 <strong>$csr</strong> 中提取公钥供其他功能使用。

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>          See CSR parameters for a list of valid
                                                         values.
  <info>bool</info>                                     <strong>$short_names</strong>  该参数可以省略。

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  成功时返回 <class>OpenSSLAsymmetricKey</class>，错误则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_csr_get_subject()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_pkey_get_details()</strong>
   * <strong>openssl_pkey_export_to_file()</strong>
   * <strong>openssl_pkey_export()</strong>


id: openssl_csr_get_subject
type: function
doc:
<comment>Description:</comment>
  返回 CSR 的主题
  
  <strong>openssl_csr_get_subject()</strong> 返回 <strong>$csr</strong> 中专有名称信息的主题，其中包含了通用名称（CN）、机构名称
  （O）、国家名（C）等字段。

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>  <strong>$csr</strong>          See CSR parameters for a list of valid
                                                         values.
  <info>bool</info>                                     <strong>$short_names</strong>  <strong>$shortnames</strong> 控制着数据如何在数组中被索引 -
                                                         如果 <strong>$shortnames</strong> 为 <info>true</info> (默认) 将使用简称
                                                         形式对字段进行索引，否则将使用全称形式 - 比
                                                         如： CN 就是 commonName 的简称形式。

<comment>Return:</comment>
  <info>array|false</info>  返回带有主题描述的关联数组， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_get_public_key()</strong>
   * <strong>openssl_x509_parse()</strong>


id: openssl_csr_new
type: function
doc:
<comment>Description:</comment>
  生成一个 CSR
  
  <strong>openssl_csr_new()</strong> 根据 <strong>$distinguished_names</strong> 提供的信息生成新的 CSR（证书签名请求）。
  
  必须安装有效的 openssl.cnf 以保证此函数正确运行。参考有关安装的说明以获得更多信息。

<comment>Param:</comment>
  <info>array</info>                 <strong>$distinguished_names</strong>  在证书中使用的专有名称或主题字段。
  <info>OpenSSLAsymmetricKey</info>  <strong>$private_key</strong>          <strong>$private_key</strong> 应该被设置为由 <strong>openssl_pkey_new()</strong> 函数预
                                              先生成(或者以其他方式从 openssl_pkey 函数集中获得)的私
                                              钥。该密钥的相应公共部分将用于签署 CSR。
  <info>array|null</info>            <strong>$options</strong>              默认通过系统里的 <return>openssl.conf</return> 配置来初始化请求；可以通
                                              过设置 <strong>$options</strong> 的 <return>config_section_section</return> 项来指定配置
                                              文件部分。 还可以通过将 config 键的值设置为想要使用的
                                              文件路径来指定另一个 openssl 配置文件。如果在 <strong>$options</strong>
                                              中存在下列键，它们的行为就像在 <return>openssl.conf</return> 中一样。如
                                              下表所示： 配置覆盖<strong>$options</strong> 键类型等同于
                                              <return>openssl.conf</return>描述digest_alg<info>string</info>default_md摘要算法或签
                                              名哈希算法，通常是 <strong>openssl_get_md_methods()</strong> 之一。
                                              x509_extensions<info>string</info>x509_extensions选择在创建 x509 证
                                              书时应该使用哪些扩展
                                              req_extensions<info>string</info>req_extensions创建 CSR 时，选择使
                                              用哪个扩展private_key_bits<info>int</info>default_bits指定应该使用
                                              多少位来生成私钥private_key_type<info>int</info>none选择在创建 CSR
                                              时应该使用哪些扩展。可选值有 <info>OPENSSL_KEYTYPE_DSA</info>、
                                              <info>OPENSSL_KEYTYPE_DH</info>、 <info>OPENSSL_KEYTYPE_RSA</info> 或
                                              <info>OPENSSL_KEYTYPE_EC</info>。 默认值是 <info>OPENSSL_KEYTYPE_RSA</info>。
                                              encrypt_key<info>bool</info>encrypt_key是否应该对导出的密钥（带有密
                                              码短语）进行加密?encrypt_key_cipher<info>int</info>nonecipher
                                              constants 常量之一。
                                              curve_name<info>string</info>none<strong>openssl_get_curve_names()</strong> 之一。
                                              config<info>string</info>N/A 自定义 openssl.conf 文件的路径。
  <info>array|null</info>            <strong>$extra_attributes</strong>     <strong>$extra_attributes</strong> 用于为 CSR 指定额外的配置选项。
                                              <strong>$distinguished_names</strong> 和 <strong>$extra_attributes</strong> 都是关联数组
                                              它们的键被转换成 OID，并应用到请求的相关部分。

<comment>Return:</comment>
  <info>OpenSSLCertificateSigningRequest|false</info>  成功，返回 CSR 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_csr_sign()</strong>


id: openssl_csr_sign
type: function
doc:
<comment>Description:</comment>
  用另一个证书签署 CSR（或者本身）并且生成一个证书
  
  <strong>openssl_csr_sign()</strong> 从给定的 CSR 生成 x509 证书。
  
  必须安装有效的 openssl.cnf 以保证此函数正确运行。参考有关安装的说明以获得更多信息。

<comment>Param:</comment>
  <info>OpenSSLCertificateSigningRequest|string</info>               <strong>$csr</strong>             由 <strong>openssl_csr_new()</strong> 函数生
                                                                         成的 CSR。 也可以是由类似
                                                                         file://path/to/csr格式指定
                                                                         的指向 PEM 编码的 CSR 路
                                                                         径，或者是一个由
                                                                         <strong>openssl_csr_export()</strong>函数生
                                                                         成的字符串。
  <info>OpenSSLCertificate|string|null</info>                        <strong>$ca_certificate</strong>  生成的证书将由
                                                                         <strong>$ca_certificate</strong>签名。 如果
                                                                         <strong>$ca_certificate</strong> 为 <info>null</info>, 生
                                                                         成的证书将是自签名证书。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>     <strong>$private_key</strong> 是
                                                                         <strong>$ca_certificate</strong> 证书对应的
                                                                         私钥。
  <info>int</info>                                                   <strong>$days</strong>            <strong>$days</strong> 指定生成的证书在几天
                                                                         内有效的时间长度。
  <info>array|null</info>                                            <strong>$options</strong>         可以通过 <strong>$options</strong> 确定 CSR
                                                                         签名。 查看
                                                                         <strong>openssl_csr_new()</strong> 方法获取
                                                                         <strong>$options</strong> 的更多相关信息。
  <info>int</info>                                                   <strong>$serial</strong>          可选的发行证书编号。如果没
                                                                         有指定默认值为0.

<comment>Return:</comment>
  <info>OpenSSLCertificate|false</info>  成功时返回 <class>OpenSSLCertificate</class>，失败则返回 <info>false</info>。


id: openssl_decrypt
type: function
doc:
<comment>Description:</comment>
  解密数据
  
  采用原始或base64编码的字符串，并使用给定的方法和密钥对其进行解密。

<comment>Param:</comment>
  <info>string</info>       <strong>$data</strong>         将被解密的密文。
  <info>string</info>       <strong>$cipher_algo</strong>  加密算法，使用<strong>openssl_get_cipher_methods()</strong>函数获取可用的加密算法列表。
  <info>string</info>       <strong>$passphrase</strong>   密钥。
  <info>int</info>          <strong>$options</strong>      <strong>$options</strong> can be one of <info>OPENSSL_RAW_DATA</info>, <info>OPENSSL_ZERO_PADDING</info>.
  <info>string</info>       <strong>$iv</strong>           非空的初始化向量。
  <info>string|null</info>  <strong>$tag</strong>          AEAD密码模式中的身份验证标签。 如果是错误的，验证失败，函数返回<info>false</info>.
                             
                             函数不检查 <strong>$tag</strong> 的长度。调用者有责任确保 tag 的长度与调用
                             <strong>openssl_encrypt()</strong> 时检索到的 tag 的长度相匹配。否则，如果给定的 tag 仅
                             匹配正确 tag 的开头，解密可能会成功。
  <info>string</info>       <strong>$aad</strong>          额外的认证数据。

<comment>Return:</comment>
  <info>string|false</info>  成功时已解密的字符串 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_encrypt()</strong>


id: openssl_dh_compute_key
type: function
doc:
<comment>Description:</comment>
  计算远程 DH 公钥和本地 DH 密钥的共享密钥
  
  <strong>openssl_dh_compute_key()</strong> 返回的共享密钥通常用作与远端秘密通信的加密密钥。这称为 Diffie-Hellman 密
  钥交换。
  
  ECDH 仅从 PHP 8.1.0 和 OpenSSL 3.0.0 开始受支持。

<comment>Param:</comment>
  <info>string</info>                <strong>$public_key</strong>   远端的 DH 公钥。
  <info>OpenSSLAsymmetricKey</info>  <strong>$private_key</strong>  本地 DH 私钥，对应于要与远端共享的公钥。

<comment>Return:</comment>
  <info>string|false</info>  成功时返回共享密钥， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_pkey_new()</strong>
   * <strong>openssl_pkey_get_details()</strong>
   * <strong>openssl_pkey_get_private()</strong>
   * <strong>openssl_pkey_get_public()</strong>


id: openssl_digest
type: function
doc:
<comment>Description:</comment>
  计算摘要
  
  使用给定的方法计算给定数据的摘要哈希值，并返回一个原始的或16进制编码的字符串。

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>         给定的数据。
  <info>string</info>  <strong>$digest_algo</strong>  要使用的摘要方法，比如 "sha256", 查看 <strong>openssl_get_md_methods()</strong> 函数获取更多
                        可用的摘要方法。
  <info>bool</info>    <strong>$binary</strong>       为 <info>true</info> 时将会返回原始输出数据，否则返回值将会是16进制。

<comment>Return:</comment>
  <info>string|false</info>  成功，返回摘要哈希值， 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>openssl_get_md_methods()</strong>


id: openssl_encrypt
type: function
doc:
<comment>Description:</comment>
  加密数据
  
  以指定的方式和 key 加密数据，返回原始或 base64 编码后的字符串。

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>         待加密的明文信息数据。
  <info>string</info>  <strong>$cipher_algo</strong>  密码学方式。<strong>openssl_get_cipher_methods()</strong> 可获取有效密码方式列表。
  <info>string</info>  <strong>$passphrase</strong>   口令（passphrase）。 若 passphrase 比预期长度短，将静默用 <return>NUL</return> 填充； 若比预
                        期长度更长，将静默截断。
  <info>int</info>     <strong>$options</strong>      <strong>$options</strong> 是以下标记的按位或： <info>OPENSSL_RAW_DATA</info> 、 <info>OPENSSL_ZERO_PADDING</info>。
  <info>string</info>  <strong>$iv</strong>           非 NULL 的初始化向量。
  <info>string</info>  <strong>$tag</strong>          使用 AEAD 密码模式（GCM 或 CCM）时传引用的验证标签。
  <info>string</info>  <strong>$aad</strong>          附加的验证数据。
  <info>int</info>     <strong>$tag_length</strong>   验证 <strong>$tag</strong> 的长度。GCM 模式时，它的范围是 4 到 16。

<comment>Return:</comment>
  <info>string|false</info>  成功时返回加密后的字符串， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_decrypt()</strong>


id: openssl_error_string
type: function
doc:
<comment>Description:</comment>
  返回 openSSL 错误消息
  
  <strong>openssl_error_string()</strong> 从openSSL库返回最后一个错误。错误消息已被队列化，因此这个函数可以多次调用用
  来收集所有的信息。最后一个错误将是最近的一个。

<comment>Return:</comment>
  <info>string|false</info>  成功，返回错误信息字符串，如果没有任何错误信息则返回 <info>false</info>。


id: openssl_free_key
type: function
doc:
<comment>Description:</comment>
  释放密钥资源
  
  <strong>openssl_free_key()</strong> 从内存中释放和指定的 <strong>$key</strong> 相关联的密钥。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$key</strong>  

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: openssl_get_cert_locations
type: function
doc:
<comment>Description:</comment>
  检索可用的证书位置
  
  <strong>openssl_get_cert_locations()</strong> 返回一个数组，其中包含要搜索SSL证书的可用证书位置的信息。

<comment>Return:</comment>
  <info>array</info>  返回一个带有可用证书位置信息的数组。


id: openssl_get_cipher_methods
type: function
doc:
<comment>Description:</comment>
  获取可用的加密算法
  
  获取可用的加密算法的列表。

<comment>Param:</comment>
  <info>bool</info>  <strong>$aliases</strong>  如果密码别名应该包含在返回的<info>array</info>中，则设置为 <info>true</info>.

<comment>Return:</comment>
  <info>array</info>  包含可用加密算法的<info>array</info>。 请注意：在 OpenSSL 1.1.1 版本之前，返回加密算法的拼法大小写都有；
         从 OpenSSL 1.1.1 开始，统一只返回小写的形式。

<comment>See Also:</comment>
   * <strong>openssl_get_md_methods()</strong>


id: openssl_get_curve_names
type: function
doc:
<comment>Description:</comment>
  获得ECC的可用曲线名称列表
  
  获取用于公钥/私钥操作的椭圆曲线密码（ECC）中可用曲线名称的列表。两个最广泛的标准化/支持的曲线是
  prime256v1（NIST P-256）和 secp384r1（NIST P-384）。 AES、RSA、DSA 和 ECC 密钥长度近似等值AES
  Symmetric Keysize (Bits)RSA and DSA Keysize (Bits)ECC Keysize
  (Bits)80102416011220482241283072256192768038425615360512 NIST  推荐使用的 ECC 曲线最少为 256 位。

<comment>Return:</comment>
  <info>array|false</info>  有效曲线名称的 <info>array</info>， 或者在失败时返回 <info>false</info>。


id: openssl_get_md_methods
type: function
doc:
<comment>Description:</comment>
  获取可用的摘要算法
  
  获取可用的摘要算法列表

<comment>Param:</comment>
  <info>bool</info>  <strong>$aliases</strong>  设置为 <info>true</info> 时，返回的<info>array</info>中将会包含摘要的别名.

<comment>Return:</comment>
  <info>array</info>  含有可用摘要算法的<info>数组</info>

<comment>See Also:</comment>
   * <strong>openssl_digest()</strong>
   * <strong>openssl_get_cipher_methods()</strong>


id: openssl_get_privatekey
type: function
doc:
<comment>Description:</comment>
  别名 openssl_pkey_get_private
  
  此函数是该函数的别名： <strong>openssl_pkey_get_private()</strong>.


id: openssl_get_publickey
type: function
doc:
<comment>Description:</comment>
  别名 openssl_pkey_get_public
  
  此函数是该函数的别名： <strong>openssl_pkey_get_public()</strong>.


id: openssl_open
type: function
doc:
<comment>Description:</comment>
  打开密封的数据
  
  <strong>openssl_open()</strong> 使用与密钥标识符 <strong>$private_key</strong> 和信封密钥 <strong>$encrypted_key</strong> 相关联的私钥打开（解密）
  <strong>$data</strong> 数据, 使用解密后的数据填充 <strong>$output</strong>。当数据被密封时，就生成了信封密钥且只能由一个特定的私钥使
  用。更多信息参见<strong>openssl_seal()</strong>。

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>           
  <info>string</info>                                                <strong>$output</strong>         如果调用成功，则在这个参数中
                                                                        返回打开的数据。
  <info>string</info>                                                <strong>$encrypted_key</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>    
  <info>string</info>                                                <strong>$cipher_algo</strong>    加解密算法。  默认值
                                                                        （<return>'RC4'</return>）认为不安全。强烈建
                                                                        议明确指定安全密码方法。
                                                                        
                                                                        默认值（<return>'RC4'</return>）认为不安全。
                                                                        强烈建议明确指定安全密码方
                                                                        法。
  <info>string|null</info>                                           <strong>$iv</strong>             初始化向量。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_seal()</strong>


id: openssl_pbkdf2
type: function
doc:
<comment>Description:</comment>
  生成一个 PKCS5 v2 PBKDF2 字符串
  
  <strong>openssl_pbkdf2()</strong> 计算 PBKDF2 (Password-Based Key Derivation Function 2), 在PKCS5 v2中定义的一个密
  钥的推导函数.

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>     派生密钥所生成的密码。
  <info>string</info>  <strong>$salt</strong>         PBKDF2 推荐一个不少于64位(8字节)的密码盐值。
  <info>int</info>     <strong>$key_length</strong>   希望输出密钥的长度。
  <info>int</info>     <strong>$iterations</strong>   需要的迭代次数 NIST  建议至少10,000次.
  <info>string</info>  <strong>$digest_algo</strong>  在<strong>openssl_get_md_methods()</strong>中可选的散列或摘要算法.默认是 SHA-1.

<comment>Return:</comment>
  <info>string|false</info>  成功，返回原始二进制字符串 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>hash_pbkdf2()</strong>
   * <strong>openssl_get_md_methods()</strong>


id: openssl_pkcs12_export
type: function
doc:
<comment>Description:</comment>
  将 PKCS#12 兼容证书存储文件导出到变量
  
  <strong>openssl_pkcs12_export()</strong> 以 PKCS#12 文件格式将 <strong>$certificate</strong> 导入到名为 <strong>$output</strong> 的字符串变量中。

<comment>Param:</comment>
  <info></info>                                                      <strong>$x509</strong>         参见密钥／证书参数以获取有效值
                                                                      列表。
  <info>string</info>                                                <strong>$output</strong>       成功，该字符串将为 PKCS#12 格
                                                                      式。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  PKCS#12 文件的私钥部分file，
                                                                      参见 公/私钥参数 获取更多可用
                                                                      列表。
  <info>string</info>                                                <strong>$passphrase</strong>   用来解锁 PKCS#12 文件的解密密
                                                                      码。
  <info>array</info>                                                 <strong>$options</strong>      可选数组，其他主键将被忽略。
                                                                      Key说明<return>"extracerts"</return>PKCS#12 文
                                                                      件中包含的额外证书或单个证书的
                                                                      数组。<return>"friendly_name"</return>被证书和
                                                                      密钥使用的字符串

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkcs12_export_to_file
type: function
doc:
<comment>Description:</comment>
  输出一个 PKCS#12 兼容的证书存储文件
  
  <strong>openssl_pkcs12_export_to_file()</strong> 以 PKCS#12 文件格式将 <strong>$certificate</strong> 保存至 <strong>$output_filename</strong> 文件
  中。

<comment>Param:</comment>
  <info></info>                                                      <strong>$x509</strong>             参见密钥／证书参数以获取有
                                                                          效值列表。
  <info>string</info>                                                <strong>$output_filename</strong>  输出文件的路径。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>      PKCS#12 文件的私钥部分。
                                                                          参见 公/私钥参数 获取可用
                                                                          值的列表。
  <info>string</info>                                                <strong>$passphrase</strong>       用于解锁 PKCS#12 文件的加
                                                                          密密码。
  <info>array</info>                                                 <strong>$options</strong>          可选数组，其他主键将被忽
                                                                          略。 Key说明
                                                                          <return>"extracerts"</return>PKCS#12 文件中
                                                                          包含的额外证书或单个证书的
                                                                          数组。<return>"friendly_name"</return>被证
                                                                          书和密钥使用的字符串

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkcs12_read
type: function
doc:
<comment>Description:</comment>
  将 PKCS#12 证书存储区解析到数组中
  
  <strong>openssl_pkcs12_read()</strong> 将 <strong>$pkcs12</strong> 提供的 PKCS#12 证书存储区解析到以 <strong>$certificates</strong> 命名的变量中。

<comment>Param:</comment>
  <info>string</info>  <strong>$pkcs12</strong>        证书存储内容，而不是它的文件名。
  <info>array</info>   <strong>$certificates</strong>  成功，将保存证书存储数据
  <info>string</info>  <strong>$passphrase</strong>    用来解锁 PKCS#12 文件的解密密码

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkcs7_decrypt
type: function
doc:
<comment>Description:</comment>
  解密一个 S/MIME 加密的消息
  
  使用由 <strong>$certificate</strong> 和 <strong>$private_key</strong> 指定的证书和与之关联的私钥解密 <strong>$input_filename</strong> 文件中包含的
  S/MIME 加密消息。

<comment>Param:</comment>
  <info>string</info>                                                     <strong>$input_filename</strong>   
  <info>string</info>                                                     <strong>$output_filename</strong>  解密的消息将被存入的
                                                                               文件中，以
                                                                               <strong>$output_filename</strong> 命
                                                                               名。
  <info>OpenSSLCertificate|string</info>                                  <strong>$certificate</strong>      
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null</info>  <strong>$private_key</strong>      

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkcs7_encrypt
type: function
doc:
<comment>Description:</comment>
  加密一个 S/MIME 消息
  
  <strong>openssl_pkcs7_encrypt()</strong> 获取名为 <strong>$input_filename</strong> 的文件内容并使用 RC2 40 位的密码将之加密，以至于
  他们只能被预期的名为 <strong>$certificate</strong> 的接收者阅读。

<comment>Param:</comment>
  <info>string</info>                           <strong>$input_filename</strong>       
  <info>string</info>                           <strong>$output_filename</strong>      
  <info>OpenSSLCertificate|array|string</info>  <strong>$certificate</strong>          一个单独的X.509证书，或者一个X.509证书的数
                                                         组。
  <info>array|null</info>                       <strong>$headers</strong>              <strong>$headers</strong> 是包含头信息的数组，在被加密后将对
                                                         数据进行预处理。
                                                         
                                                         <strong>$headers</strong> 可以是以头名为键值的关联数组，也可
                                                         以是一个索引数组，其中每个元素都包含一个单
                                                         独的标题行
  <info>int</info>                              <strong>$flags</strong>                <strong>$flags</strong>用来指定影响编码过程的选项 - 参见
                                                         PKCS7 常量.
  <info></info>                                 <strong>$cipcipher_algoherid</strong>  密码常量之一。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkcs7_read
type: function
doc:
<comment>Description:</comment>
  将 PKCS7 文件导出为 PEM 格式证书的数组
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>          想要解析的字符串数据（p7b 格式）。
  <info>array</info>   <strong>$certificates</strong>  PEM 格式证书的数组，来源于输入的 p7b 数据。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_csr_sign()</strong>


id: openssl_pkcs7_sign
type: function
doc:
<comment>Description:</comment>
  对一个 S/MIME 消息进行签名
  
  <strong>openssl_pkcs7_sign()</strong> 获取名为 <strong>$input_filename</strong> 的文件内容，并使用由 <strong>$certificate</strong> 和 <strong>$private_key</strong> 指
  定的证书和与之匹配的私钥对其进行加密

<comment>Param:</comment>
  <info>string</info>                                                <strong>$input_filename</strong>                   你打算用来
                                                                                          进行数字签
                                                                                          名的输入文
                                                                                          件。
  <info>string</info>                                                <strong>$output_filename</strong>                  将写入数字
                                                                                          签名的文
                                                                                          件。
  <info>OpenSSLCertificate|string</info>                             <strong>$certificate</strong>                      用来对
                                                                                          <strong>$input_filename</strong>
                                                                                          进行数字签
                                                                                          名的 X.509
                                                                                          证书，参见
                                                                                          密钥/证书
                                                                                          参数获取可
                                                                                          用列表。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>                      
                                                                                          <strong>$private_key</strong>
                                                                                          是对应
                                                                                          <strong>$certificate</strong>
                                                                                          证书的私
                                                                                          钥。 参见
                                                                                          公/私钥参
                                                                                          数获取可用
                                                                                          列表。
  <info>array|null</info>                                            <strong>$headers</strong>                          <strong>$headers</strong>是
                                                                                          一个包含头
                                                                                          信息的数
                                                                                          组，在它被
                                                                                          签名后，它
                                                                                          将被预先对
                                                                                          数据进行预
                                                                                          处理 (参见
                                                                                          <strong>openssl_pkcs7_encrypt()</strong>
                                                                                          获取关于该
                                                                                          参数格式的
                                                                                          更多信
                                                                                          息)。
  <info>int</info>                                                   <strong>$flags</strong>                            <strong>$flags</strong> 可
                                                                                          以用来改变
                                                                                          输出 - 参
                                                                                          见 PKCS7常
                                                                                          量。
  <info>string|null</info>                                           <strong>$untrusted_certificates_filename</strong>  
                                                                                          <strong>$untrusted_certificates_filename</strong>
                                                                                          指定一个文
                                                                                          件的名称，
                                                                                          其中包含一
                                                                                          组含有签名
                                                                                          的额外的证
                                                                                          书，这些证
                                                                                          书可以用来
                                                                                          帮助接收者
                                                                                          验证您使用
                                                                                          的证书。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkcs7_verify
type: function
doc:
<comment>Description:</comment>
  校验一个已签名的 S/MIME 消息的签名
  
  <strong>openssl_pkcs7_verify()</strong> 读取给定文件中的 S/MIME 消息并且检查数字签名。

<comment>Param:</comment>
  <info>string</info>       <strong>$input_filename</strong>                   消息的路径。
  <info>int</info>          <strong>$flags</strong>                            <strong>$flags</strong> 可以用来影响如何校验签名 - 参见 PKCS7 常量
                                                 获取更多信息。
  <info>string|null</info>  <strong>$signers_certificates_filename</strong>    如果已指定 <strong>$signers_certificates_filename</strong> 输出文
                                                 件，它应该是一个用以保存文件的字符串名称，签名消息
                                                 的个人证书将以 PEM 的格式保存起来。
  <info>array</info>        <strong>$ca_info</strong>                          如果 <strong>$ca_info</strong> 被指定了，它应该保存关于受信任的CA证
                                                 书的信息供在验证过程中使用 - 参见 证书校验 获取关于
                                                 该参数的更多信息。
  <info>string|null</info>  <strong>$untrusted_certificates_filename</strong>  如果 <strong>$untrusted_certificates_filename</strong> 被指定了，该
                                                 文件包含了一堆会被作为不受信任的ca使用的证书。
  <info>string|null</info>  <strong>$content</strong>                          你可以使用 <strong>$content</strong> 来指定带有已被验证数据的文件
                                                 名，该文件内容已去掉了签名信息。
  <info>string|null</info>  <strong>$output_filename</strong>                  

<comment>Return:</comment>
  <info>bool|int</info>  如果签名已被认证，返回 <info>true</info>, 如果不正确 (消息已被篡改或者签名证书不可用) 则返回 <info>false</info>,
            或者 - 错误时返回1.


id: openssl_pkey_derive
type: function
doc:
<comment>Description:</comment>
  Computes shared secret for public value of remote and local DH or ECDH key
  
  <strong>openssl_pkey_derive()</strong> takes a set of a <strong>$public_key</strong> and <strong>$private_key</strong> and derives a shared secret,
  for either DH or EC keys.

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>   <strong>$public_key</strong> is the public key
                                                                      for the derivation. See
                                                                      Public/Private Key parameters
                                                                      for a list of valid values.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  <strong>$private_key</strong> is the private
                                                                      key for the derivation. See
                                                                      Public/Private Key parameters
                                                                      for a list of valid values.
  <info>int</info>                                                   <strong>$key_length</strong>   If not zero, will set the
                                                                      desired length of the derived
                                                                      secret.

<comment>Return:</comment>
  <info>string|false</info>  The derived secret on success 或者在失败时返回 <info>false</info>.


id: openssl_pkey_export
type: function
doc:
<comment>Description:</comment>
  将一个密钥的可输出表示转换为字符串
  
  <strong>openssl_pkey_export()</strong> 将 <strong>$key</strong> 当作 PEM 编码字符串导出并且将之保存到<strong>$output</strong> (通过引用传递的)中。
  
  必须安装有效的 openssl.cnf 以保证此函数正确运行。参考有关安装的说明以获得更多信息。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$key</strong>         
  <info>string</info>                                                <strong>$output</strong>      
  <info>string|null</info>                                           <strong>$passphrase</strong>  密钥可以通过 <strong>$passphrase</strong> 来保
                                                                     护。
  <info>array|null</info>                                            <strong>$options</strong>     <strong>$options</strong> 可以用来调整导出流程，
                                                                     通过指定或者覆盖openssl配置文件
                                                                     选项。参见 <strong>openssl_csr_new()</strong> 获
                                                                     取更多关于 <strong>$options</strong> 的信息。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkey_export_to_file
type: function
doc:
<comment>Description:</comment>
  将密钥导出到文件中 
  
  <strong>openssl_pkey_export_to_file()</strong> 将 ascii 格式（PEM 编码）的 <strong>$key</strong> 保存到名为 <strong>$output_filename</strong> 文件
  中。
  
  必须安装有效的 openssl.cnf 以保证此函数正确运行。参考有关安装的说明以获得更多信息。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$key</strong>              
  <info>string</info>                                                <strong>$output_filename</strong>  输出文件的路径。
  <info>string|null</info>                                           <strong>$passphrase</strong>       密钥可以通过值为
                                                                          <strong>$passphrase</strong>的密码来保护。
  <info>array|null</info>                                            <strong>$options</strong>          <strong>$options</strong> 可以用来调整导出
                                                                          流程，通过指定或者覆盖
                                                                          openssl配置文件选项。参见
                                                                          <strong>openssl_csr_new()</strong> 获取更多
                                                                          关于 <strong>$options</strong> 的信息。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_pkey_free
type: function
doc:
<comment>Description:</comment>
  释放一个私钥
  
  此函数无效。在 PHP 8.0.0 之前，用于关闭资源。
  
  该函数释放由 <strong>openssl_pkey_new()</strong> 创建的私钥。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$key</strong>  持有该密钥的资源。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: openssl_pkey_get_details
type: function
doc:
<comment>Description:</comment>
  返回包含密钥详情的数组
  
  该函数返回密钥详情（位长度，密钥，类型）。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$key</strong>  持有密钥的资源。

<comment>Return:</comment>
  <info>array|false</info>  成功时返回包含密钥详情的数组，失败时返回 <info>false</info>。 返回的数组中包含了如下索引： <return>bits</return>
               (位数)、 <return>key</return>（表示公钥的字符串）和 <return>type</return>（如下密钥类型之一： <info>OPENSSL_KEYTYPE_RSA</info>、
               <info>OPENSSL_KEYTYPE_DSA</info>、 <info>OPENSSL_KEYTYPE_DH</info>、 <info>OPENSSL_KEYTYPE_EC</info> 或者是 -1，代表未知类
               型）。
               
               根据使用的密钥类型，可能会返回不同的额外信息。请注意，有些元素可能并不总是可用的。
               
               <info>OPENSSL_KEYTYPE_RSA</info>，一个额外的键名为 <return>"rsa"</return> 的数组，包含了以下密钥数据：
               
               <info>OPENSSL_KEYTYPE_DSA</info>, 一个额外的键为 <return>"dsa"</return> 的数组，  包含如下的密钥数据。
               
               <info>OPENSSL_KEYTYPE_DH</info>, 一个额外的键为 <return>"dh"</return> 的数组，包含如下的密钥数据。
               
               <info>OPENSSL_KEYTYPE_EC</info>，一个额外的键为 <return>"ec"</return> 的数组，包含如下的密钥数据。


id: openssl_pkey_get_private
type: function
doc:
<comment>Description:</comment>
  获取私钥
  
  <strong>openssl_pkey_get_private()</strong> 解析 <strong>$private_key</strong> 供其他函数使用。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  <strong>$private_key</strong> 可以是如下密钥之
                                                                      一： 如下格式的字符串
                                                                      file://path/to/file.pem。该文
                                                                      件必须包含 PEM 编码的证书或者
                                                                      私钥 (可能都包含了). 一个 PEM
                                                                      格式的私钥。
                                                                      
                                                                      如下格式的字符串
                                                                      file://path/to/file.pem。该文
                                                                      件必须包含 PEM 编码的证书或者
                                                                      私钥 (可能都包含了).
                                                                      
                                                                      一个 PEM 格式的私钥。
  <info>string|null</info>                                           <strong>$passphrase</strong>   如果指定的密钥已被加密了(受密
                                                                      码保护)，可选参数 <strong>$passphrase</strong>
                                                                      是必须要的。

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  成功时现在返回 <class>OpenSSLAsymmetricKey</class> 实例，失败时返回 <info>false</info>。


id: openssl_pkey_get_public
type: function
doc:
<comment>Description:</comment>
  从证书中解析公钥，以供使用
  
  <strong>openssl_pkey_get_public()</strong> 从 <strong>$public_key</strong> 中解析公钥，供其他函数使用。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>  <strong>$public_key</strong> 可以是以下之一：
                                                                     <class>OpenSSLAsymmetricKey</class> 实例
                                                                     file://path/to/file.pem 格式的
                                                                     字符串。文件名必须包含一个 PEM
                                                                     编码的证书或者密钥(也许二者都
                                                                     有). 一个 PEM 格式的公钥。
                                                                     
                                                                     <class>OpenSSLAsymmetricKey</class> 实例
                                                                     
                                                                     file://path/to/file.pem 格式的
                                                                     字符串。文件名必须包含一个 PEM
                                                                     编码的证书或者密钥(也许二者都
                                                                     有).
                                                                     
                                                                     一个 PEM 格式的公钥。

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  成功时返回 <class>OpenSSLAsymmetricKey</class> 实例，错误时返回 <info>false</info>。


id: openssl_pkey_new
type: function
doc:
<comment>Description:</comment>
  生成一个新的私钥
  
  <strong>openssl_pkey_new()</strong> 生成一个新的私钥和公钥对。如何获取该密钥的公共组件参见以下示例。
  
  必须安装有效的 openssl.cnf 以保证此函数正确运行。参考有关安装的说明以获得更多信息。

<comment>Param:</comment>
  <info>array|null</info>  <strong>$options</strong>  你可以使用 <strong>$options</strong> 参数微调密钥的生成（比如指定位数）。查看
                        <strong>openssl_csr_new()</strong> 获取更多关于 <strong>$options</strong> 的信息。

<comment>Return:</comment>
  <info>OpenSSLAsymmetricKey|false</info>  成功时返回 <class>OpenSSLAsymmetricKey</class> 实例，错误则返回 <info>false</info> 。


id: openssl_private_decrypt
type: function
doc:
<comment>Description:</comment>
  使用私钥解密数据
  
  <strong>openssl_private_decrypt()</strong> 解密之前通过 <strong>openssl_public_encrypt()</strong> 加密的 <strong>$data</strong>，并将结果保存至
  <strong>$decrypted_data</strong> 中。
  
  可以使用该函数来解密只对个人有效的数据。

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$decrypted_data</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>     <strong>$private_key</strong> 必须是跟数据加
                                                                         密相对应的私钥。
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong>  可以是如下值：
                                                                         <info>OPENSSL_PKCS1_PADDING</info>、
                                                                         <info>OPENSSL_SSLV23_PADDING</info>、
                                                                         <info>OPENSSL_PKCS1_OAEP_PADDING</info>、
                                                                         <info>OPENSSL_NO_PADDING</info>。

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * <strong>openssl_public_encrypt()</strong>
   * <strong>openssl_public_decrypt()</strong>


id: openssl_private_encrypt
type: function
doc:
<comment>Description:</comment>
  使用私钥加密数据
  
  <strong>openssl_private_encrypt()</strong> 使用私钥 <strong>$private_key</strong> 加密数据 <strong>$data</strong> 并且将结果保存至变量
  <strong>$encrypted_data</strong>中。加密后的数据可以通过<strong>openssl_public_decrypt()</strong>函数来解密。
  
  该函数用来签名数据（或者哈希）让别人相信数据并不是其他人写的。

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$encrypted_data</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>     
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong> 可以是如下之一：
                                                                         <info>OPENSSL_PKCS1_PADDING</info>,
                                                                         <info>OPENSSL_NO_PADDING</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_public_encrypt()</strong>
   * <strong>openssl_public_decrypt()</strong>


id: openssl_public_decrypt
type: function
doc:
<comment>Description:</comment>
  使用公钥解密数据
  
  <strong>openssl_public_decrypt()</strong> 解密先前由 <strong>openssl_private_encrypt()</strong> 加密的数据 <strong>$data</strong> 并且将结果保存至变
  量 <strong>$decrypted_data</strong>中。
  
  你可以用该函数来校验消息是否是私钥拥有者写的。

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$decrypted_data</strong>  
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>      <strong>$public_key</strong> 必须是和用来加
                                                                         密数据的私钥配对的公钥。
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong> 可以是如下至
                                                                         <info>OPENSSL_PKCS1_PADDING</info>,
                                                                         <info>OPENSSL_NO_PADDING</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_private_encrypt()</strong>
   * <strong>openssl_private_decrypt()</strong>


id: openssl_public_encrypt
type: function
doc:
<comment>Description:</comment>
  使用公钥加密数据
  
  <strong>openssl_public_encrypt()</strong> 使用公钥 <strong>$public_key</strong> 解密数据 <strong>$data</strong> 并且将结果保存到变量 <strong>$encrypted_data</strong>
  中。加密的数据可以通过 <strong>openssl_private_decrypt()</strong> 函数解密。
  
  该函数可以用来加密数据，供该公钥匹配的私钥拥有者读取。 它也可以用来在数据库中存储安全数据。

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>            
  <info>string</info>                                                <strong>$encrypted_data</strong>  这将保存加密的结果。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>      公钥。
  <info>int</info>                                                   <strong>$padding</strong>         <strong>$padding</strong> can be one of
                                                                         <info>OPENSSL_PKCS1_PADDING</info>,
                                                                         <info>OPENSSL_SSLV23_PADDING</info>,
                                                                         <info>OPENSSL_PKCS1_OAEP_PADDING</info>,
                                                                         <info>OPENSSL_NO_PADDING</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_private_encrypt()</strong>
   * <strong>openssl_private_decrypt()</strong>


id: openssl_random_pseudo_bytes
type: function
doc:
<comment>Description:</comment>
  生成一个伪随机字节串
  
  生成一个伪随机字节串 <info>string</info> ，字节数由 <strong>$length</strong> 参数指定。
  
  通过 <strong>$strong_result</strong> 参数可以表示在生成随机字节的过程中是否使用了强加密算法。返回值为 <info>false</info> 的情况
  很少见，但已损坏或老化的有些系统上会出现。

<comment>Param:</comment>
  <info>int</info>   <strong>$length</strong>         所需字节串的长度，必须为正整数且小于等于 <return>2147483647</return>。PHP 会试着将该参数转换
                        为非空整数来使用它。
  <info>bool</info>  <strong>$strong_result</strong>  如果传递到该函数中，将会保存为一个 <info>bool</info> 值来表明是否使用了“强加密”，如果被用
                        于GPG和密码之类的将返回 <info>true</info>，否则返回 <info>false</info>

<comment>Return:</comment>
  <info>string</info>  返回生成的字节 <info>string</info>。

<comment>See Also:</comment>
   * <strong>random_bytes()</strong>
   * <strong>bin2hex()</strong>
   * <strong>crypt()</strong>
   * <strong>random_int()</strong>


id: openssl_seal
type: function
doc:
<comment>Description:</comment>
  密封 (加密) 数据
  
  <strong>openssl_seal()</strong> 使用随机生成的密钥和给定的 <strong>$cipher_algo</strong> 方法密封（加密）<strong>$data</strong> 数据。密钥用与
  <strong>$public_key</strong> 中的标识符相关联的每个公共密钥加密，并且每个加密密钥在 <strong>$encrypted_keys</strong> 中返回。这意味
  着一个人可以将密封的数据发送给多个接收者（如果一个人已经获得了他们的公钥）。每个接收方都必须同时接
  收加密的数据和用接收方的公钥加密的信封密钥。

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>            要密封的数据。
  <info>string</info>  <strong>$sealed_data</strong>     被密封后的数据。
  <info>array</info>   <strong>$encrypted_keys</strong>  已被加密的密钥数组。
  <info>array</info>   <strong>$public_key</strong>      包含公钥的 <class>OpenSSLAsymmetricKey</class> 实例数组。
  <info>string</info>  <strong>$cipher_algo</strong>     加密算法。  默认值（<return>'RC4'</return>）认为不安全。强烈建议明确指定安全密码方法。 
                           
                           默认值（<return>'RC4'</return>）认为不安全。强烈建议明确指定安全密码方法。
  <info>string</info>  <strong>$iv</strong>              初始化向量。

<comment>Return:</comment>
  <info>int|false</info>  成功时返回密封后数据的长度，错误为 <info>false</info>。 如果密封后的数据成功地通过 <strong>$sealed_data</strong> 变量
             返回，那么信封密钥也将会通过 <strong>$encrypted_keys</strong> 变量返回。

<comment>See Also:</comment>
   * <strong>openssl_open()</strong>


id: openssl_sign
type: function
doc:
<comment>Description:</comment>
  Generate signature
  
  <strong>openssl_sign()</strong> computes a signature for the specified <strong>$data</strong> by generating a cryptographic digital
  signature using the private key associated with <strong>$private_key</strong>. Note that the data itself is not
  encrypted.

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>         The string of data you wish to
                                                                      sign
  <info>string</info>                                                <strong>$signature</strong>    If the call was successful the
                                                                      signature is returned in
                                                                      <strong>$signature</strong>.
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  <class>OpenSSLAsymmetricKey</class> - a key,
                                                                      returned by
                                                                      <strong>openssl_get_privatekey()</strong>
                                                                      
                                                                      <info>string</info> - a PEM formatted key
  <info>string|int</info>                                            <strong>$algorithm</strong>    <info>int</info> - one of these Signature
                                                                      Algorithms.
                                                                      
                                                                      <info>string</info> - a valid string
                                                                      returned by
                                                                      <strong>openssl_get_md_methods()</strong>
                                                                      example,
                                                                      "sha256WithRSAEncryption" or
                                                                      "sha384".

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_verify()</strong>


id: openssl_spki_export
type: function
doc:
<comment>Description:</comment>
  通过签名公钥和 challenge 导出一个可用的 PEM 格式的公钥
  
  从编码的签名公钥和 challenge 导出 PEM 格式的公钥。

<comment>Param:</comment>
  <info>string</info>  <strong>$spki</strong>  期望一个有效的签名公钥和 challenge 字符串。

<comment>Return:</comment>
  <info>string|false</info>  返回关联的 PEM 格式的公钥，失败则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_export_challenge
type: function
doc:
<comment>Description:</comment>
  导出与签名公钥和 challenge 相关的 challenge
  
  从编码的签名公钥和 challenge 中导出 challenge

<comment>Param:</comment>
  <info>string</info>  <strong>$spki</strong>  需要有效的签名公钥和 challenge

<comment>Return:</comment>
  <info>string|false</info>  返回相关 challenge 字符串，失败返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_new
type: function
doc:
<comment>Description:</comment>
  生成新的签名公钥和 challenge
  
  使用指定散列算法生成新的签名公钥和 challenge。

<comment>Param:</comment>
  <info>OpenSSLAsymmetricKey</info>  <strong>$private_key</strong>  <strong>$private_key</strong> 应该被设置为由 <strong>openssl_pkey_new()</strong> 函数预先生成
                                      （或者以其他方式从 openssl_pkey 函数家族集中获得）的私钥。该密
                                      钥的相应公共部分将用于签署 CSR。
  <info>string</info>                <strong>$challenge</strong>    与 SPKAC 有关的 challenge。
  <info>int</info>                   <strong>$digest_algo</strong>  摘要算法。参见 openssl_get_md_method()。

<comment>Return:</comment>
  <info>string|false</info>  返回签名的公钥和 challenge，失败返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_spki_verify()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_spki_verify
type: function
doc:
<comment>Description:</comment>
  验证签名公钥和 challenge
  
  验证提供的签名公钥和 challenge。

<comment>Param:</comment>
  <info>string</info>  <strong>$spki</strong>  期望有效的签名公钥和 challenge。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_spki_new()</strong>
   * <strong>openssl_spki_export_challenge()</strong>
   * <strong>openssl_spki_export()</strong>
   * <strong>openssl_get_md_methods()</strong>
   * <strong>openssl_csr_new()</strong>
   * <strong>openssl_csr_sign()</strong>


id: openssl_verify
type: function
doc:
<comment>Description:</comment>
  验证签名
  
  <strong>openssl_verify()</strong> 使用与 <strong>$public_key</strong> 关联的公钥验证指定数据 <strong>$data</strong> 的签名 <strong>$signature</strong> 是否正确。这必
  须是与用于签名的私钥相对应的公钥。

<comment>Param:</comment>
  <info>string</info>                                                <strong>$data</strong>        以前用来生成签名的数据字符串。
  <info>string</info>                                                <strong>$signature</strong>   原始二进制字符串，通过
                                                                     <strong>openssl_sign()</strong> 或类似的函数生
                                                                     成。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>  <class>OpenSSLAsymmetricKey</class> - 一个密
                                                                     钥, 通过
                                                                     <strong>openssl_get_publickey()</strong> 函数返
                                                                     回。
                                                                     
                                                                     <info>string</info> - 一个 PEM 格式的密钥
                                                                     （比如 <return>-----BEGIN PUBLIC
                                                                     KEY-----
                                                                     MIIBCgK...</return>）
  <info>string|int</info>                                            <strong>$algorithm</strong>   <info>int</info> - 以下签名算法之一
                                                                     Signature Algorithms.
                                                                     
                                                                     <info>string</info> - 由
                                                                     <strong>openssl_get_md_methods()</strong> 函数返
                                                                     回的可用字符串，比如，
                                                                     "sha1WithRSAEncryption" 或者
                                                                     "sha512".

<comment>Return:</comment>
  <info>int|false</info>  如果签名正确返回 1，签名错误返回 0，错误时返回 -1 或 <info>false</info>。

<comment>See Also:</comment>
   * <strong>openssl_sign()</strong>


id: openssl_x509_check_private_key
type: function
doc:
<comment>Description:</comment>
  检查私钥是否对应于证书
  
  检查指定的私钥 <strong>$private_key</strong> 是否和证书 <strong>$certificate</strong> 对应。
  
  这个函数不会检查密钥 <strong>$private_key</strong> 是否真的是私钥。 它只是比较了和密钥匹配的公共材料 (比如，RSA 密
  钥的指数和模量) 和/或密钥参数(比如，EC 密钥的参数)。
  
  这也意味着，比如，提供给 <strong>$private_key</strong> 赋一个公钥值，该函数可能返回 <info>true</info>。

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>                             <strong>$certificate</strong>  证书。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$private_key</strong>  私钥。

<comment>Return:</comment>
  <info>bool</info>  如果指定的私钥 <strong>$private_key</strong> 和证书 <strong>$certificate</strong> 对应，返回 <info>true</info> 否则返回 <info>false</info>。


id: openssl_x509_checkpurpose
type: function
doc:
<comment>Description:</comment>
  验证是否可以为特定目的使用证书
  
  <strong>openssl_x509_checkpurpose()</strong> 检查证书以查看它是否可用于指定目的 <strong>$purpose</strong>。

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>  <strong>$certificate</strong>                  被检查的证书。
  <info>int</info>                        <strong>$purpose</strong>                      <strong>openssl_x509_checkpurpose()</strong> 目的常量名描
                                                           述X509_PURPOSE_SSL_CLIENT证书是否可以用于
                                                           SSL 连接的客户
                                                           端?X509_PURPOSE_SSL_SERVER证书是否可以用
                                                           于 SSL 连接的服务器
                                                           端?X509_PURPOSE_NS_SSL_SERVER证书是否可以
                                                           用于 Netscape SSL 服务
                                                           器?X509_PURPOSE_SMIME_SIGN证书是否可以用
                                                           来签名 S/MIME 邮
                                                           件?X509_PURPOSE_SMIME_ENCRYPT正式是否可用
                                                           用来加密 S/MIME 邮
                                                           件?X509_PURPOSE_CRL_SIGN证书是否可以用来
                                                           签名证书撤销列表
                                                           （CRL）?X509_PURPOSE_ANY证书是否可以用于
                                                           任何目的? 这些选项不是位字段——只能指定一
                                                           个字段!
  <info>array</info>                      <strong>$ca_info</strong>                      <strong>$ca_info</strong> 应该是一个受信任的 CA 文件/文件
                                                           夹组成的数组，如 Certificate Verification
                                                           所描述的一样。
  <info>string|null</info>                <strong>$untrusted_certificates_file</strong>  如果指定，这应该是 PEM 编码文件的名称，该
                                                           文件持有证书，可以用来帮助验证证书,尽管从
                                                           该文件中获得的证书不受信任。

<comment>Return:</comment>
  <info>bool|int</info>  如果证书可以用于预期目的，返回 <info>true</info>，如果不行，则返回 <info>false</info> 错误便会返回 -1。


id: openssl_x509_export
type: function
doc:
<comment>Description:</comment>
  以字符串格式导出证书
  
  <strong>openssl_x509_export()</strong> 将 <strong>$certificate</strong> 以 PEM 编码的格式导出到名为 <strong>$output</strong> 的字符串类型的变量中。

<comment>Param:</comment>
  <info></info>        <strong>$x509</strong>     参见密钥／证书参数以获取有效值列表。
  <info>string</info>  <strong>$output</strong>   成功，将会存储 PEM。
  <info>bool</info>    <strong>$no_text</strong>  可选参数 <strong>$notext</strong> 影响输出的冗余度。如果设为
                    <info>false</info>，输出内容将包含附加的人类可读信息。<strong>$notext</strong> 的缺省值为 <info>true</info>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_x509_export_to_file
type: function
doc:
<comment>Description:</comment>
  导出证书至文件
  
  <strong>openssl_x509_export_to_file()</strong> 将 <strong>$certificate</strong> 以 PEM 编码的格式保存到名为 <strong>$output_filename</strong> 的文件
  中。

<comment>Param:</comment>
  <info></info>        <strong>$x509</strong>             参见密钥／证书参数以获取有效值列表。
  <info>string</info>  <strong>$output_filename</strong>  输出文件的路径。
  <info>bool</info>    <strong>$no_text</strong>          可选参数 <strong>$notext</strong> 影响输出的冗余度。如果设为
                            <info>false</info>，输出内容将包含附加的人类可读信息。<strong>$notext</strong> 的缺省值为 <info>true</info>。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: openssl_x509_fingerprint
type: function
doc:
<comment>Description:</comment>
  计算一个给定的 x.509 证书的指纹或摘要
  
  <strong>openssl_x509_fingerprint()</strong> 返回 <strong>$certificate</strong> 的字符串类型的摘要。

<comment>Param:</comment>
  <info></info>        <strong>$x509</strong>         参见密钥／证书参数以获取有效值列表。
  <info>string</info>  <strong>$digest_algo</strong>  使用的摘要方法或散列算法，比如，"sha256"、<strong>openssl_get_md_methods()</strong> 摘要算法
                        之一。
  <info>bool</info>    <strong>$binary</strong>       设置为 <info>true</info> 时，输出原始二进制数据。设置为 <info>false</info> 时，输出小写的 16 进制字符
                        串。

<comment>Return:</comment>
  <info>string|false</info>  将包含计算的证书指纹的字符串返回为小写 16 进制格式，除非将 <strong>$binary</strong> 设置为 <info>true</info>，在这
                种情况下会返回消息摘要的原始二进制表示形式。
                
                失败则返回 <info>false</info>。


id: openssl_x509_free
type: function
doc:
<comment>Description:</comment>
  释放证书资源
  
  此函数无效。在 PHP 8.0.0 之前，用于关闭资源。
  
  <strong>openssl_x509_free()</strong> 从内存中释放和指定 <strong>$certificate</strong> 资源相关联的证书。

<comment>Param:</comment>
  <info>OpenSSLCertificate</info>  <strong>$certificate</strong>  

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: openssl_x509_parse
type: function
doc:
<comment>Description:</comment>
  解析一个 X509 证书并作为一个数组返回信息
  
  <strong>openssl_x509_parse()</strong> 返回提供的 <strong>$certificate</strong> 证书的信息，包括主题名称、发行方名称、目的、有效日期
  等字段。

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>  <strong>$certificate</strong>  X509 证书。有关有效值列表，参阅密钥/证书参数。
  <info>bool</info>                       <strong>$short_names</strong>  <strong>$short_names</strong> 控制数据在数组中的索引 - 如果 <strong>$short_names</strong>
                                           为 <info>true</info>，字段将以短名称的形式被索引，否则将会使用长名称的
                                           形式 - 比如：CN 就是 commonName 的短名称格式。

<comment>Return:</comment>
  <info>array|false</info>  返回的数据的结构是（故意的）还没有文档化，因为它仍然会发生变化。


id: openssl_x509_read
type: function
doc:
<comment>Description:</comment>
  解析 x.509 证书并返回对象
  
  <strong>openssl_x509_read()</strong> 解析<strong>$certificate</strong> 提供的证书，并返回它的 <class>OpenSSLCertificate</class> 对象。

<comment>Param:</comment>
  <info>OpenSSLCertificate|string</info>  <strong>$certificate</strong>  X509 证书。参见 Key/Certificate parameters 获取可用的值。

<comment>Return:</comment>
  <info>OpenSSLCertificate|false</info>  成功时返回 <class>OpenSSLCertificate</class>， 或者在失败时返回 <info>false</info>.


id: openssl_x509_verify
type: function
doc:
<comment>Description:</comment>
  Verifies digital signature of x509 certificate against a public key
  
  <strong>openssl_x509_verify()</strong> verifies that the  <strong>$certificate</strong> certificate was signed by the private  key
  corresponding to public key <strong>$public_key</strong>.

<comment>Param:</comment>
  <info></info>                                                      <strong>$x509</strong>        参见密钥／证书参数以获取有效值
                                                                     列表。
  <info>OpenSSLAsymmetricKey|OpenSSLCertificate|array|string</info>  <strong>$public_key</strong>  <class>OpenSSLAsymmetricKey</class> - a key,
                                                                     returned by
                                                                     <strong>openssl_get_publickey()</strong>
                                                                     
                                                                     <info>string</info> - a PEM formatted key
                                                                     (e.g. <return>-----BEGIN PUBLIC
                                                                     KEY-----
                                                                     MIIBCgK...</return>)

<comment>Return:</comment>
  <info>int</info>  Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

<comment>See Also:</comment>
   * <strong>openssl_verify()</strong>
   * <strong>openssl_get_publickey()</strong>


id: ord
type: function
doc:
<comment>Description:</comment>
  转换字符串第一个字节为 0-255 之间的值
  
  解析 <strong>$character</strong> 二进制值第一个字节为 0 到 255 范围的无符号整型类型。
  
  如果字符串是 ASCII、 ISO-8859、Windows 1252之类单字节编码，就等于返回该字符在字符集编码表中的位
  置。 但请注意，本函数不会去检测字符串的编码，尤其是不会识别类似 UTF-8 或 UTF-16 这种多字节字符的
  Unicode 代码点（code point）。
  
  该函数是 <strong>chr()</strong> 的互补函数。

<comment>Param:</comment>
  <info>string</info>  <strong>$character</strong>  一个字符。

<comment>Return:</comment>
  <info>int</info>  返回 0 - 255 的整型值。

<comment>See Also:</comment>
   * <strong>chr()</strong>
   * ASCII 码表
   * <strong>mb_ord()</strong>
   * <strong>IntlChar::ord()</strong>


id: output_add_rewrite_var
type: function
doc:
<comment>Description:</comment>
  添加URL重写器的值（Add URL rewriter values）
  
  此函数给URL重写机制添加名/值对。 这种名值对将被添加到 URL（以 GET 参数的形式）和表单（以 input 隐
  藏域的形式），当透明 URL 重写用  session.use_trans_sid 开启时同样可以添加到 session ID。
  
  此函数的行为受 url_rewriter.tags 和 url_rewriter.hosts php.ini 参数控制。
  
  注意，每个请求最多可以成功调用此函数一次。
  
  如果还没有活跃的输出缓冲区，调用此函数将隐式地开启它。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   变量名。
  <info>string</info>  <strong>$value</strong>  变量值。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>output_reset_rewrite_vars()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_list_handlers()</strong>
   * url_rewriter.tags
   * url_rewriter.hosts
   * session.trans_sid_tags
   * session.trans_sid_hosts


id: output_reset_rewrite_vars
type: function
doc:
<comment>Description:</comment>
  重设URL重写器的值（Reset URL rewriter values）
  
  此函数重置 URL 重写器并移除所有的先前由 <strong>output_add_rewrite_var()</strong>  函数设置的所有重写变量。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>output_add_rewrite_var()</strong>
   * <strong>ob_flush()</strong>
   * <strong>ob_list_handlers()</strong>
   * <strong>session_start()</strong>


id: pack
type: function
doc:
<comment>Description:</comment>
  将数据打包成二进制字符串
  
  将输入参数打包成 <strong>$format</strong> 格式的二进制字符串。
  
  这个函数的思想来自 Perl，所有格式化代码（<strong>$format</strong>）的工作原理都与 Perl 相同。 但是，缺少了部分格式
  代码，比如 Perl 的 “u”。
  
  注意，有符号值和无符号值之间的区别只影响函数 <strong>unpack()</strong>，在那些使用有符号和无符号格式代码的地方
  <strong>pack()</strong> 函数产生相同的结果。

<comment>Param:</comment>
  <info>string</info>  <strong>$format</strong>  <strong>$format</strong> 字符串由格式代码组成，后面跟着一个可选的重复参数。重复参数可以是一个整数
                   值或者 <return>*</return> 值来重复到输入数据的末尾。对于 a, A, h, H 格式化代码，其后的重复参数指定
                   了给定数据将会被使用几个字符串。对于 @，其后的数字表示放置剩余数据的绝对定位（之
                   前的数据将会被空字符串填充），对于其他所有内容，重复数量指定消耗多少个数据参数并
                   将其打包到生成的二进制字符串中。
                   
                   目前已实现的格式如下： <strong>pack()</strong> 格式字符代码描述a以 NUL 字节填充字符串A以 SPACE(空
                   格) 填充字符串h十六进制字符串，低位在前H十六进制字符串，高位在前c有符号字符C无符
                   号字符s有符号短整型(16位，主机字节序)S无符号短整型(16位，主机字节序)n无符号短整型
                   (16位，大端字节序)v无符号短整型(16位，小端字节序)i有符号整型(机器相关大小字节
                   序)I无符号整型(机器相关大小字节序)l有符号长整型(32位，主机字节序)L无符号长整型
                   (32位，主机字节序)N无符号长整型(32位，大端字节序)V无符号长整型(32位，小端字节
                   序)q有符号长长整型(64位，主机字节序)Q无符号长长整型(64位，主机字节序)J无符号长长
                   整型(64位，大端字节序)P无符号长长整型(64位，小端字节序)f单精度浮点型(机器相关大
                   小)g单精度浮点型(机器相关大小，小端字节序)G单精度浮点型(机器相关大小，大端字节
                   序)d双精度浮点型(机器相关大小)e双精度浮点型(机器相关大小，小端字节序)E双精度浮点
                   型(机器相关大小，大端字节序)xNUL 字节X回退一字节Z以 NUL 字节填充字符串空白@NUL 填
                   充到绝对位置
  <info>mixed</info>   <strong>$values</strong>  

<comment>Return:</comment>
  <info>string</info>  返回包含数据的二进制字符串。

<comment>See Also:</comment>
   * <strong>unpack()</strong>


id: parallel\Channel::__construct
type: function
doc:
<comment>Description:</comment>
  Channel Construction
  
  Shall make an anonymous unbuffered channel
  
  Shall make an anonymous buffered channel with the given capacity

<comment>Param:</comment>
  <info>int</info>  <strong>$capacity</strong>  May be <info>Channel::Infinite</info> or a positive integer


id: parallel\Channel::close
type: function
doc:
<comment>Description:</comment>
  Closing
  
  Shall close this channel

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Channel::make
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall make an unbuffered channel with the given name
  
  Shall make a buffered channel with the given name and capacity

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>      The name of the channel.
  <info>int</info>     <strong>$capacity</strong>  May be <info>Channel::Infinite</info> or a positive integer

<comment>Return:</comment>
  <info>Channel</info>  


id: parallel\Channel::open
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall open the channel with the given name

<comment>Return:</comment>
  <info>Channel</info>  


id: parallel\Channel::recv
type: function
doc:
<comment>Description:</comment>
  Sharing
  
  Shall recv a value from this channel

<comment>Return:</comment>
  <info>mixed</info>  


id: parallel\Channel::send
type: function
doc:
<comment>Description:</comment>
  Sharing
  
  Shall send the given value on this channel

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events::addChannel
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall watch for events on the given <strong>$channel</strong>

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events::addFuture
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall watch for events on the given <strong>$future</strong>

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events::poll
type: function
doc:
<comment>Description:</comment>
  Polling
  
  Shall poll for the next event

<comment>Return:</comment>
  <info>parallel\Events\Event|null</info>  Should there be no targets remaining, <info>null</info> shall be returned
                              
                              Should this be a non-blocking loop, and blocking would occur, <info>null</info>
                              shall be returned
                              
                              Otherwise, the <class>parallel\Events\Event</class> returned describes the event.


id: parallel\Events::remove
type: function
doc:
<comment>Description:</comment>
  Targets
  
  Shall remove the given <strong>$target</strong>

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events::setBlocking
type: function
doc:
<comment>Description:</comment>
  Behaviour
  
  By default when events are polled for, blocking will occur (at the PHP level) until the first
  event can be returned: Setting blocking mode to <info>false</info> will cause poll to return control if the
  first target polled is not ready.
  
  This differs from setting a timeout of 0 with parallel\Events::setTimeout, since a timeout of 0,
  while allowed, will cause an exception  to be raised, which may be extremely slow or wasteful if
  what is really desired is non-blocking behaviour.
  
  A non-blocking loop effects the return value of parallel\Events::poll, such that it may be <info>null</info>
  before all events have been processed.
  
  Shall set blocking mode

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events::setInput
type: function
doc:
<comment>Description:</comment>
  Input
  
  Shall set <strong>$input</strong> for this event loop

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events::setTimeout
type: function
doc:
<comment>Description:</comment>
  Behaviour
  
  By default when events are polled for, blocking will occur (at the PHP level) until the first
  event can be returned: Setting the timeout causes an exception to be thrown when the timeout is
  reached.
  
  This differs from setting blocking mode to <info>false</info> with parallel\Events::setBlocking, which will not
  cause an exception to be thrown.
  
  Shall set the timeout in microseconds

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events\Input::add
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall set input for the given target

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events\Input::clear
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall remove input for all targets

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Events\Input::remove
type: function
doc:
<comment>Description:</comment>
  Inputs
  
  Shall remove input for the given target

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Future::cancel
type: function
doc:
<comment>Description:</comment>
  Cancellation
  
  Shall try to cancel the task
  
  If task is running, it will be interrupted.
  
  Internal function calls in progress cannot be interrupted.

<comment>Return:</comment>
  <info>bool</info>  


id: parallel\Future::cancelled
type: function
doc:
<comment>Description:</comment>
  State Detection
  
  Shall indicate if the task was cancelled

<comment>Return:</comment>
  <info>bool</info>  


id: parallel\Future::done
type: function
doc:
<comment>Description:</comment>
  State Detection
  
  Shall indicate if the task is completed

<comment>Return:</comment>
  <info>bool</info>  


id: parallel\Future::value
type: function
doc:
<comment>Description:</comment>
  Resolution
  
  Shall return (and if necessary wait for) return from task

<comment>Return:</comment>
  <info>mixed</info>  


id: parallel\Runtime::__construct
type: function
doc:
<comment>Description:</comment>
  Runtime Construction
  
  Shall construct a new runtime without bootstrapping.
  
  Shall construct a bootstrapped runtime.

<comment>Param:</comment>
  <info>string</info>  <strong>$bootstrap</strong>  The location of a bootstrap file, generally an autoloader.


id: parallel\Runtime::close
type: function
doc:
<comment>Description:</comment>
  Runtime Graceful Join
  
  Shall request that the runtime shutsdown.
  
  Tasks scheduled for execution will be executed before the shutdown occurs.

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Runtime::kill
type: function
doc:
<comment>Description:</comment>
  Runtime Join
  
  Shall attempt to force the runtime to shutdown.
  
  Tasks scheduled for execution will not be executed, the currently running task shall be
  interrupted.
  
  Internal function calls in progress cannot be interrupted.

<comment>Return:</comment>
  <info>void</info>  


id: parallel\Runtime::run
type: function
doc:
<comment>Description:</comment>
  Execution
  
  Shall schedule <strong>$task</strong> for execution in parallel.
  
  Shall schedule <strong>$task</strong> for execution in parallel, passing <strong>$argv</strong> at execution time.

<comment>Param:</comment>
  <info>Closure</info>  <strong>$task</strong>  A <class>Closure</class> with specific characteristics.
  <info>array</info>    <strong>$argv</strong>  An <info>array</info> of arguments with specific characteristics to be passed to <strong>$task</strong> at
                  execution time.

<comment>Return:</comment>
  <info>Future|null</info>  The return <info>parallel\Future</info> must not be ignored when the task contains a return or
               throw statement.


id: parallel\Sync::__construct
type: function
doc:
<comment>Description:</comment>
  Construction
  
  Shall construct a new synchronization object with no value
  
  Shall construct a new synchronization object containing the given scalar value


id: parallel\Sync::__invoke
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall exclusively enter into the critical code


id: parallel\Sync::get
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall atomically return the synchronization objects value

<comment>Return:</comment>
  <info>scalar</info>  


id: parallel\Sync::notify
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall notify one (by default) or all threads waiting on the synchronization object


id: parallel\Sync::set
type: function
doc:
<comment>Description:</comment>
  Access
  
  Shall atomically set the value of the synchronization object


id: parallel\Sync::wait
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Shall wait for notification on this synchronization object


id: parallel\bootstrap
type: function
doc:
<comment>Description:</comment>
  Bootstrapping
  
  Shall use the provided <strong>$file</strong> to bootstrap all runtimes created for automatic scheduling via
  <strong>parallel\run()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$file</strong>  Path to the file to bootstrap all runtimes.

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * 


id: parallel\run
type: function
doc:
<comment>Description:</comment>
  Execution
  
  Shall schedule <strong>$task</strong> for execution in parallel.
  
  Shall schedule <strong>$task</strong> for execution in parallel, passing <strong>$argv</strong> at execution time.

<comment>Param:</comment>
  <info>Closure</info>  <strong>$task</strong>  A <class>Closure</class> with specific characteristics.
  <info>array</info>    <strong>$argv</strong>  An <info>array</info> of arguments with specific characteristics to be passed to <strong>$task</strong> at
                  execution time.

<comment>Return:</comment>
  <info>Future|null</info>  The return <info>parallel\Future</info> must not be ignored when the task contains a return or
               throw statement.

<comment>See Also:</comment>
   * 


id: parse_ini_file
type: function
doc:
<comment>Description:</comment>
  解析一个配置文件
  
  <strong>parse_ini_file()</strong> 载入一个由 <strong>$filename</strong> 指定的 ini 文件，并将其中的设置作为一个关联数组返回。
  
  ini 文件的结构和 php.ini 的相同。

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>          要解析的 ini 文件的文件名。如果使用相对路径，则优先在相对于当前工作目录
                             的目录中查找文件，如果未找到则在 include_path 中查找文件进行解析。
  <info>bool</info>    <strong>$process_sections</strong>  如果将 <strong>$process_sections</strong> 参数设为 <info>true</info>，将得到多维数组，包括了配置文件
                             中的节名和配置。<strong>$process_sections</strong> 的默认值是 <info>false</info>。
  <info>int</info>     <strong>$scanner_mode</strong>      可以是 <info>INI_SCANNER_NORMAL</info>（默认），也可以是 <info>INI_SCANNER_RAW</info>。如果提供了
                             <info>INI_SCANNER_RAW</info>，然后将不会解析选项值。
                             
                             As of PHP 5.6.1 can also be specified as <info>INI_SCANNER_TYPED</info>. In this
                             mode boolean, null and integer types are preserved when possible.
                             String values <return>"true"</return>, <return>"on"</return> and <return>"yes"</return> are converted to <info>true</info>. <return>"false"</return>,
                             <return>"off"</return>, <return>"no"</return> and <return>"none"</return> are considered <info>false</info>. <return>"null"</return> is converted to
                             <info>null</info> in typed mode. Also, all numeric strings are converted to integer
                             type if it is possible.

<comment>Return:</comment>
  <info>array|false</info>  成功时以关联数组 <info>array</info> 返回设置，失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>parse_ini_string()</strong>


id: parse_ini_string
type: function
doc:
<comment>Description:</comment>
  解析配置字符串
  
  <strong>parse_ini_string()</strong> 返回 <strong>$ini_string</strong> 字符串解析后的关联数组。
  
  ini 字符串的格式参考 php.ini

<comment>Param:</comment>
  <info>string</info>  <strong>$ini_string</strong>        ini 字符串内容。
  <info>bool</info>    <strong>$process_sections</strong>  设置 <strong>$process_sections</strong> 参数为 <info>true</info>，得到一个多维数组，包含名称和设置。
                             <strong>$process_sections</strong> 默认为 <info>false</info>。
  <info>int</info>     <strong>$scanner_mode</strong>      可以是 <info>INI_SCANNER_NORMAL</info> (默认)或 <info>INI_SCANNER_RAW</info>。如果是
                             <info>INI_SCANNER_RAW</info>，那么选项值不会被解析。
                             
                             As of PHP 5.6.1 can also be specified as <info>INI_SCANNER_TYPED</info>. In this
                             mode boolean, null and integer types are preserved when possible.
                             String values <return>"true"</return>, <return>"on"</return> and <return>"yes"</return> are converted to <info>true</info>. <return>"false"</return>,
                             <return>"off"</return>, <return>"no"</return> and <return>"none"</return> are considered <info>false</info>. <return>"null"</return> is converted to
                             <info>null</info> in typed mode. Also, all numeric strings are converted to integer
                             type if it is possible.

<comment>Return:</comment>
  <info>array|false</info>  执行成功返回一个关联数组，返回 <info>false</info> 为失败。

<comment>See Also:</comment>
   * <strong>parse_ini_file()</strong>


id: parse_str
type: function
doc:
<comment>Description:</comment>
  将字符串解析成多个变量
  
  如果 <strong>$string</strong> 是 URL 传递入的查询字符串（query string），则将它解析为变量并设置到当前作用域（如果提
  供了 <strong>$result</strong> 则会设置到该数组里 ）。

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  输入的字符串。
  <info>array</info>   <strong>$result</strong>  如果设置了第二个变量 <strong>$result</strong>， 变量将会以数组元素的形式存入到这个数组，作为替代。
                   
                   极度不建议在没有 <strong>$result</strong> 参数的情况下使用此函数， 并且在 PHP 7.2 中将废弃不设置参
                   数的行为。PHP 8.0.0 起，<strong>$result</strong> 参数是强制的。

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * <strong>parse_url()</strong>
   * <strong>pathinfo()</strong>
   * <strong>http_build_query()</strong>
   * <strong>urldecode()</strong>


id: parse_url
type: function
doc:
<comment>Description:</comment>
  解析 URL，返回其组成部分
  
  本函数解析 URL 并返回关联数组，包含在 URL 中出现的各种组成部分。数组的元素值不会 URL 解码。
  
  本函数不是用来验证给定 URL 的有效性的，只是将其分解为下面列出的部分。也会接受不完整或无效的 URL，
  <strong>parse_url()</strong> 会尝试尽量正确解析。

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>        要解析的 URL。
  <info>int</info>     <strong>$component</strong>  指定 <info>PHP_URL_SCHEME</info>、<info>PHP_URL_HOST</info>、<info>PHP_URL_PORT</info>、<info>PHP_URL_USER</info>、<info>PHP_URL_PASS</info>、
                      <info>PHP_URL_PATH</info>、<info>PHP_URL_QUERY</info> 或 <info>PHP_URL_FRAGMENT</info> 的其中一个来获取 URL 中指定的
                      部分的 <info>string</info>。（当指定为 <info>PHP_URL_PORT</info> 时，返回值将是 <info>int</info>）。

<comment>Return:</comment>
  <info>int|string|array|null|false</info>  对严重不合格的 URL，<strong>parse_url()</strong> 可能会返回 <info>false</info>。
                               
                               如果省略了 <strong>$component</strong> 参数，将返回关联数组 <info>array</info>。至少会有一个元素出
                               现在数组中。数组中可能的键有以下几种： scheme——如 http
                               hostportuserpasspathquery——在问号 <return>?</return> 之后 fragment——在注释符号 <return>#</return> 之后
                               
                               scheme——如 http
                               
                               host
                               
                               port
                               
                               user
                               
                               pass
                               
                               path
                               
                               query——在问号 <return>?</return> 之后
                               
                               fragment——在注释符号 <return>#</return> 之后
                               
                               如果指定 <strong>$component</strong> 参数，<strong>parse_url()</strong> 返回 <info>string</info> （或在指定为
                               <info>PHP_URL_PORT</info> 时返回 <info>int</info>）而不是 <info>array</info>。如果 URL 中指定的组成部分不存
                               在，将会返回 <info>null</info>。自 PHP 8.0.0 起，<strong>parse_url()</strong> 开始对 query 和
                               fragment 区分不存在和空值。
                               
                               
                               
                               之前所有的情况都会导致 query 和 fragment 为 <info>null</info>。
                               
                               注意组件中的控制字符（参见 <strong>ctype_cntrl()</strong>）替换为下划线（<return>_</return>）。

<comment>See Also:</comment>
   * <strong>pathinfo()</strong>
   * <strong>parse_str()</strong>
   * <strong>http_build_query()</strong>
   * <strong>dirname()</strong>
   * <strong>basename()</strong>
   * RFC 3986


id: passthru
type: function
doc:
<comment>Description:</comment>
  执行外部程序并且显示原始输出
  
  同 <strong>exec()</strong> 函数类似， <strong>passthru()</strong> 函数 也是用来执行外部命令（<strong>$command</strong>）的。 当所执行的 Unix 命令输出
  二进制数据， 并且需要直接传送到浏览器的时候， 需要用此函数来替代 <strong>exec()</strong>  或 <strong>system()</strong> 函数。 常用来
  执行诸如 pbmplus 之类的可以直接输出图像流的命令。 通过设置 Content-type 为 <return>image/gif</return>， 然后调用
  pbmplus 程序输出 gif 文件， 就可以从 PHP 脚本中直接输出图像到浏览器。

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>      要执行的命令。
  <info>int</info>     <strong>$result_code</strong>  如果提供  <strong>$result_code</strong> 参数， Unix 命令的返回状态会被记录到此参数。

<comment>Return:</comment>
  <info>false|null</info>  成功时返回 <info>null</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>exec()</strong>
   * <strong>system()</strong>
   * <strong>popen()</strong>
   * <strong>escapeshellcmd()</strong>
   * 执行运算符


id: password_algos
type: function
doc:
<comment>Description:</comment>
  Get available password hashing algorithm IDs
  
  Returns a complete list of all registered password hashing algorithm IDs as an <info>array</info> of <info>string</info>s.

<comment>Return:</comment>
  <info>array</info>  Returns the available password hashing algorithm IDs.


id: password_get_info
type: function
doc:
<comment>Description:</comment>
  返回指定散列（hash）的相关信息
  
  如果传入的散列值（hash）是由 <strong>password_hash()</strong> 支持的算法生成的， 这个函数就会返回关于此散列的信息数
  组。

<comment>Param:</comment>
  <info>string</info>  <strong>$hash</strong>  一个由 <strong>password_hash()</strong> 创建的散列值。

<comment>Return:</comment>
  <info>array</info>  返回三个元素的关联数组： <return>algo</return>， 匹配 密码算法的常量 <return>algoName</return>，人类可读的算法名称 <return>options</return>，
         调用 <strong>password_hash()</strong> 时提供的选项。
         
         <return>algo</return>， 匹配 密码算法的常量
         
         <return>algoName</return>，人类可读的算法名称
         
         <return>options</return>，调用 <strong>password_hash()</strong> 时提供的选项。


id: password_hash
type: function
doc:
<comment>Description:</comment>
  创建密码的散列（hash）
  
  <strong>password_hash()</strong> 使用足够强度的单向散列算法创建密码的散列（hash）。
  
  当前支持的算法：
  
  <info>PASSWORD_DEFAULT</info> - 使用 bcrypt 算法 (PHP 5.5.0 默认)。 注意，该常量会随着 PHP 加入更新更高强度的算
  法而改变。 所以，使用此常量生成结果的长度将在未来有变化。 因此，数据库里储存结果的列可超过60个字符
  （最好是255个字符）。 <info>PASSWORD_BCRYPT</info> - 使用 <info>CRYPT_BLOWFISH</info> 算法创建散列。 这会产生兼容使用 "$2y$"
  的 <strong>crypt()</strong>。 结果将会是 60 个字符的字符串，  或者在失败时返回 <info>false</info>。 <info>PASSWORD_ARGON2I</info> - 使用
  Argon2i 散列算法创建散列。 只有在 PHP 编译时加入 Argon2 支持时才能使用该算法。 <info>PASSWORD_ARGON2ID</info> -
  使用 Argon2id 散列算法创建散列。 只有在 PHP 编译时加入 Argon2 支持时才能使用该算法。
  
  <info>PASSWORD_DEFAULT</info> - 使用 bcrypt 算法 (PHP 5.5.0 默认)。 注意，该常量会随着 PHP 加入更新更高强度的算
  法而改变。 所以，使用此常量生成结果的长度将在未来有变化。 因此，数据库里储存结果的列可超过60个字符
  （最好是255个字符）。
  
  <info>PASSWORD_BCRYPT</info> - 使用 <info>CRYPT_BLOWFISH</info> 算法创建散列。 这会产生兼容使用 "$2y$" 的 <strong>crypt()</strong>。 结果将会
  是 60 个字符的字符串，  或者在失败时返回 <info>false</info>。
  
  <info>PASSWORD_ARGON2I</info> - 使用 Argon2i 散列算法创建散列。 只有在 PHP 编译时加入 Argon2 支持时才能使用该算
  法。
  
  <info>PASSWORD_ARGON2ID</info> - 使用 Argon2id 散列算法创建散列。 只有在 PHP 编译时加入 Argon2 支持时才能使用该
  算法。
  
  <info>PASSWORD_BCRYPT</info> 支持的选项：
  
  <return>salt</return>(<info>string</info>) - 手动提供散列密码的盐值（salt）。这将避免自动生成盐值（salt）。  省略此值后，
  <strong>password_hash()</strong> 会为每个密码散列自动生成随机的盐值。这种操作是有意的模式。  盐值（salt）选项已废弃
  （deprecated）。 现在最好仅选择使用默认产生的盐值。 从 PHP 8.0.0 起，明确指定的 salt 值会被忽略。
  <return>cost</return> (<info>int</info>) - 代表算法使用的 cost。<strong>crypt()</strong> 页面上有 cost 值的示例。  省略时，默认值是 <return>10</return>。 这个
  cost 是个不错的底线，但也许可以根据自己硬件的情况，加大这个值。
  
  <return>salt</return>(<info>string</info>) - 手动提供散列密码的盐值（salt）。这将避免自动生成盐值（salt）。
  
  省略此值后，<strong>password_hash()</strong> 会为每个密码散列自动生成随机的盐值。这种操作是有意的模式。
  
  盐值（salt）选项已废弃（deprecated）。 现在最好仅选择使用默认产生的盐值。 从 PHP 8.0.0 起，明确指
  定的 salt 值会被忽略。
  
  <return>cost</return> (<info>int</info>) - 代表算法使用的 cost。<strong>crypt()</strong> 页面上有 cost 值的示例。
  
  省略时，默认值是 <return>10</return>。 这个 cost 是个不错的底线，但也许可以根据自己硬件的情况，加大这个值。
  
  <info>PASSWORD_ARGON2I</info> 和 <info>PASSWORD_ARGON2ID</info> 支持的选项：
  
  <return>memory_cost</return> (<info>int</info>) - 计算 Argon2 散列时的最大内存（单位：KB）。默认值：
  <info>PASSWORD_ARGON2_DEFAULT_MEMORY_COST</info>。 <return>time_cost</return> (<info>int</info>) - 计算 Argon2 散列时最多的时间。默认值：
  <info>PASSWORD_ARGON2_DEFAULT_TIME_COST</info>。 <return>threads</return> (<info>int</info>) - 计算 Argon2 散列时最多的线程数。默认值：
  <info>PASSWORD_ARGON2_DEFAULT_THREADS</info>。  只有在 PHP 使用 libargon2 时可用；如果是 libsodium 的实现，则无
  法使用。
  
  <return>memory_cost</return> (<info>int</info>) - 计算 Argon2 散列时的最大内存（单位：KB）。默认值：
  <info>PASSWORD_ARGON2_DEFAULT_MEMORY_COST</info>。
  
  <return>time_cost</return> (<info>int</info>) - 计算 Argon2 散列时最多的时间。默认值： <info>PASSWORD_ARGON2_DEFAULT_TIME_COST</info>。
  
  <return>threads</return> (<info>int</info>) - 计算 Argon2 散列时最多的线程数。默认值： <info>PASSWORD_ARGON2_DEFAULT_THREADS</info>。
  
  只有在 PHP 使用 libargon2 时可用；如果是 libsodium 的实现，则无法使用。

<comment>Param:</comment>
  <info>string</info>           <strong>$password</strong>  用户的密码。
                              
                              使用<info>PASSWORD_BCRYPT</info> 做算法，将使 <strong>$password</strong> 参数最长为72个字节，超过会
                              被截断。
  <info>string|int|null</info>  <strong>$algo</strong>      一个用来在散列密码时指示算法的密码算法常量。
  <info>array</info>            <strong>$options</strong>   一个包含有选项的关联数组。详细的参数说明，请参考文档 密码算法常数。
                              
                              省略后，将使用随机盐值与默认 cost。

<comment>Return:</comment>
  <info>string</info>  返回散列后的密码。
          
          使用的算法、cost 和盐值作为散列的一部分返回。所以验证散列值的所有信息都已经包含在内。 这使
          <strong>password_verify()</strong> 函数验证的时候，不需要额外储存盐值或者算法的信息。

<comment>See Also:</comment>
   * <strong>password_verify()</strong>
   * <strong>password_needs_rehash()</strong>
   * <strong>crypt()</strong>
   * <strong>sodium_crypto_pwhash_str()</strong>


id: password_needs_rehash
type: function
doc:
<comment>Description:</comment>
  检测散列值是否匹配指定的选项
  
  此函数检测指定的散列值是否实现了提供的算法和选项。 如果没有，需要重新生成散列值。

<comment>Param:</comment>
  <info>string</info>           <strong>$hash</strong>     一个由 <strong>password_hash()</strong> 创建的散列值。
  <info>string|int|null</info>  <strong>$algo</strong>     一个用来在散列密码时指示算法的密码算法常量。
  <info>array</info>            <strong>$options</strong>  一个包含有选项的关联数组。详细的参数说明，请参考文档 密码算法常数。

<comment>Return:</comment>
  <info>bool</info>  如果散列需要重新生成才能匹配指定的 <strong>$algo</strong> 和 <strong>$options</strong>， 则返回 <info>true</info>，否则返回 <info>false</info>。


id: password_verify
type: function
doc:
<comment>Description:</comment>
  验证密码是否和散列值匹配
  
  验证密码是否和指定的散列值匹配。<strong>password_verify()</strong> 与 <strong>crypt()</strong> 兼容。因此，由 <strong>crypt()</strong> 创建的密码散列
  可以用于 <strong>password_verify()</strong> 一起使用。
  
  注意 <strong>password_hash()</strong> 返回的散列包含了算法、 cost 和盐值。 因此，所有需要的信息都包含内。使得验证函
  数不需要储存额外盐值等信息即可验证散列。
  
  时序攻击（timing attacks）对此函数不起作用。

<comment>Param:</comment>
  <info>string</info>  <strong>$password</strong>  用户的密码。
  <info>string</info>  <strong>$hash</strong>      一个由 <strong>password_hash()</strong> 创建的散列值。

<comment>Return:</comment>
  <info>bool</info>  如果密码和散列值匹配则返回 <info>true</info>，否则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>password_needs_rehash()</strong>
   * <strong>password_hash()</strong>
   * 用户级实现
   * <strong>sodium_crypto_pwhash_str_verify()</strong>


id: pathinfo
type: function
doc:
<comment>Description:</comment>
  返回文件路径的信息
  
  <strong>pathinfo()</strong> 返回一个关联数组包含有 <strong>$path</strong> 的信息。返回关联数组还是字符串取决于 <strong>$flags</strong>。
  
  有关取得当前路径信息的说明，请阅读 预定义变量 一节。
  
  <strong>pathinfo()</strong> 纯粹基于输入字符串操作， 它不会受实际文件系统和类似 "<return>..</return>" 的路径格式影响。
  
  反斜线字符 <return>\</return> 仅在 Windows 系统上会解释为目录分隔符。在其他系统上，它将视为普通字符。
  
  <strong>pathinfo()</strong> 是本地化的，所以为了让它能正确地解析一个包含多字节编码的路径， 必须使用 <strong>setlocale()</strong> 函
  数来设置地区信息。

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>   要解析的路径。
  <info>int</info>     <strong>$flags</strong>  如果指定了，将会返回指定元素；它们包括： <info>PATHINFO_DIRNAME</info>、 <info>PATHINFO_BASENAME</info>、
                  <info>PATHINFO_EXTENSION</info>、 <info>PATHINFO_FILENAME</info>。
                  
                  如果没有指定 <strong>$flags</strong> 默认是返回全部的单元。

<comment>Return:</comment>
  <info>array|string</info>  如果没有传入 <strong>$options</strong> ，将会返回包括以下单元的数组 <info>array</info>：<return>dirname</return>，<return>basename</return> 和
                <return>extension</return>（如果有），以及<return>filename</return>。
                
                如果 <strong>$path</strong> 有一个以上的扩展名， <info>PATHINFO_EXTENSION</info> 只返回最后一个，而
                <info>PATHINFO_FILENAME</info> 仅剥离最后一个。 （参考第一个示例）。
                
                如果 <strong>$path</strong> 没有扩展名，返回数据中就不会有 <return>extension</return> 元素。（参考第二个示例）
                
                如果 <strong>$path</strong> 中的 <return>basename</return> 以点开始， 那后面的字符串将被解释为 <return>extension</return> ， 并且
                <return>filename</return> 为空。（参考第三个示例）
                
                如果 <strong>$flags</strong> 存在的， 则返回一个包含请求元素的 <info>string</info>。

<comment>See Also:</comment>
   * <strong>dirname()</strong>
   * <strong>basename()</strong>
   * <strong>parse_url()</strong>
   * <strong>realpath()</strong>


id: pclose
type: function
doc:
<comment>Description:</comment>
  关闭进程文件指针
  
  关闭用 <strong>popen()</strong> 打开的指向管道的文件指针。

<comment>Param:</comment>
  <info>resource</info>  <strong>$handle</strong>  文件指针必须有效，且必须是成功调用 <strong>popen()</strong> 所返回的。

<comment>Return:</comment>
  <info>int</info>  返回运行的进程的终止状态。发生错误时会返回 <return>-1</return>。
       
       如果 PHP 是通过 --enable-sigchild 编译的，此函数将没有返回值。

<comment>See Also:</comment>
   * <strong>popen()</strong>


id: pcntl_alarm
type: function
doc:
<comment>Description:</comment>
  为进程设置 alarm 闹钟信号
  
  创建计时器，在指定的秒数后向进程发送 <info>SIGALRM</info> 信号。每次对 <strong>pcntl_alarm()</strong> 的调用都会取消之前设置的
  alarm 信号。

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>  等待的秒数。如果 <strong>$seconds</strong> 设置为 0,将不会创建 alarm 信号。

<comment>Return:</comment>
  <info>int</info>  返回上次 alarm 调度（离 alarm 信号发送）剩余的秒数，或者之前没有 alarm 调度（译注：或者之前调
       度已完成） 时返回 <return>0</return>。


id: pcntl_async_signals
type: function
doc:
<comment>Description:</comment>
  Enable/disable asynchronous signal handling or return the old setting
  
  If the <strong>$enable</strong> parameter is <info>null</info>, <strong>pcntl_async_signals()</strong> returns whether asynchronous signal
  handling is enabled. Otherwise, asynchronous signal handling is enabled or disabled.

<comment>Param:</comment>
  <info>bool|null</info>  <strong>$enable</strong>  Whether asynchronous signal handling should be enabled.

<comment>Return:</comment>
  <info>bool</info>  When used as getter (<strong>$enable</strong> parameter is <info>null</info>) it returns whether asynchronous signal
        handling is enabled. When used as setter (<strong>$enable</strong> parameter is not <info>null</info>), it returns whether
        asynchronous signal handling was enabled before the function call.

<comment>See Also:</comment>
   * declare


id: pcntl_errno
type: function
doc:
<comment>Description:</comment>
  别名 pcntl_get_last_error
  
  此函数是该函数的别名： <strong>pcntl_get_last_error()</strong>


id: pcntl_exec
type: function
doc:
<comment>Description:</comment>
  在当前进程空间执行指定程序
  
  以给定参数执行程序。

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>      <strong>$path</strong> 必须时可执行二进制文件路径或一个在文件第一行指定了 一个可执行文件路径标头
                     的脚本（比如文件第一行是 #!/usr/local/bin/perl 的 perl 脚本）。 更多的信息请查
                     看您系统的 execve（2）手册。
  <info>array</info>   <strong>$args</strong>      <strong>$args</strong> 是一个要传递给程序的参数的字符串数组。
  <info>array</info>   <strong>$env_vars</strong>  <strong>$env_vars</strong> 是一个要传递给程序作为环境变量的字符串数组。这个数组是 key =&gt;
                     value 格式的，key 代表要传递的环境变量的名称，value 代表该环境变量值。

<comment>Return:</comment>
  <info>bool</info>  返回 <info>false</info>。


id: pcntl_fork
type: function
doc:
<comment>Description:</comment>
  在当前进程当前位置产生分叉（fork）
  
  <strong>pcntl_fork()</strong> 函数创建子进程，这个子进程仅 PID（进程号） 和 PPID（父进程号）与其父进程不同。有关分
  叉在系统上工作的具体细节，请参阅系统的 fork(2) 手册页。

<comment>Return:</comment>
  <info>int</info>  成功时，在父进程执行线程内返回产生的子进程的 PID，在子进程执行线程内返回 0。失败时，在 父进程
       上下文返回 -1，不会创建子进程，并且会引发 PHP 错误。

<comment>See Also:</comment>
   * <strong>pcntl_rfork()</strong>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>cli_set_process_title()</strong>


id: pcntl_get_last_error
type: function
doc:
<comment>Description:</comment>
  Retrieve the error number set by the last pcntl function which failed
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  Returns error code.

<comment>See Also:</comment>
   * <strong>pcntl_strerror()</strong>


id: pcntl_getpriority
type: function
doc:
<comment>Description:</comment>
  获取任意进程的优先级
  
  <strong>pcntl_getpriority()</strong> 获取进程号为 <strong>$process_id</strong> 的进程的优先级。由于不同的系统类型以及内核版本下 优先
  级可能不同，因此请参考系统的 getpriority（2）手册以获取详细的规范。

<comment>Param:</comment>
  <info>int|null</info>  <strong>$process_id</strong>  如果为 <info>null</info>，默认使用当前进程的进程号。
  <info>int</info>       <strong>$mode</strong>        <info>PRIO_PGRP</info>（译注：获取进程组优先级）、<info>PRIO_USER</info>（译注：获取用户进程优先
                         级）、<info>PRIO_PROCESS（译注：默认值;获取进程优先级）</info>、<info>PRIO_DARWIN_BG</info> 或
                         <info>PRIO_DARWIN_THREAD</info> 之一。

<comment>Return:</comment>
  <info>int|false</info>  <strong>pcntl_getpriority()</strong> 返回进程的优先级或在错误时返回 <info>false</info>。值越小代表优先级越高。
             
             此函数可能返回布尔值
             <info>false</info>，但也可能返回等同于 <info>false</info> 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用
             ===
             运算符来测试此函数的返回值。

<comment>See Also:</comment>
   * <strong>pcntl_setpriority()</strong>


id: pcntl_rfork
type: function
doc:
<comment>Description:</comment>
  Manipulates process resources
  
  Manipulates process resources.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>   The <strong>$flags</strong> parameter determines which resources of the invoking process (parent) are
                shared by the new process (child) or initialized to their default values.
                
                <strong>$flags</strong> is the logical OR of some subset of: <info>RFPROC</info>: If set a new process is created;
                otherwise changes affect the current process. <info>RFNOWAIT</info>: If set, the child process
                will be dissociated from the parent. Upon exit the child will not leave a status for
                the parent to collect. <info>RFFDG</info>: If set, the invoker's file descriptor table is copied;
                otherwise the two processes share a single table. <info>RFCFDG</info>: If set, the new process
                starts with a clean file descriptor table. Is mutually exclusive with <return>RFFDG</return>.
                <info>RFLINUXTHPN</info>: If set, the kernel will return SIGUSR1 instead of SIGCHILD upon thread
                exit for the child. This is intended to do Linux clone exit parent notification.
  <info>int</info>  <strong>$signal</strong>  The signal number.

<comment>Return:</comment>
  <info>int</info>  On success, the PID of the child process is returned in the parent's thread of execution, and
       a <return>0</return> is returned in the child's thread of execution.  On failure, a <return>-1</return> will be returned in the
       parent's context, no child process will be created, and a PHP error is raised.

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>cli_set_process_title()</strong>


id: pcntl_setpriority
type: function
doc:
<comment>Description:</comment>
  修改任意进程的优先级
  
  <strong>pcntl_setpriority()</strong> 设置进程号为 <strong>$process_id</strong> 的进程的优先级。

<comment>Param:</comment>
  <info>int</info>       <strong>$priority</strong>    <strong>$priority</strong> 通常时 -20 至 20 这个范围内的值。默认优先级是 0,值越小代表 优先级
                         越高。由于不同的系统类型以及内核版本下优先级可能不同，因此请参考系统的
                         setpriority（2） 手册以获取详细的规范。
  <info>int|null</info>  <strong>$process_id</strong>  如果为 <info>null</info>，默认是当前进程的进程号。
  <info>int</info>       <strong>$mode</strong>        <info>PRIO_PGRP</info>（译注：获取进程组优先级）、<info>PRIO_USER</info>（译注：获取用户进程优先级）
                         或 <info>PRIO_PROCESS（译注：默认值;获取进程优先级）</info>、<info>PRIO_DARWIN_BG</info> 或
                         <info>PRIO_DARWIN_THREAD</info> 之一。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_getpriority()</strong>
   * <strong>pcntl_setpriority()</strong>


id: pcntl_signal
type: function
doc:
<comment>Description:</comment>
  安装信号处理程序
  
  <strong>pcntl_signal()</strong> 函数为 <strong>$signal</strong> 指定的信号安装新的信号处理程序或替换当前信号处理程序。

<comment>Param:</comment>
  <info>int</info>           <strong>$signal</strong>            信号编号。
  <info>callable|int</info>  <strong>$handler</strong>           信号处理程序。要么是 <info>callable</info>，将调用它来处理信号，要么是全局常量
                                   <info>SIG_IGN</info> 或 <info>SIG_DFL</info>，将分别用于忽略信号或恢复默认信号处理程序。
                                   
                                   如果指定为 <info>callable</info>，必须实现以下签名：
                                   
                                   <info>void</info>handler<info>int</info><strong>$signo</strong><info>mixed</info><strong>$siginfo</strong><strong>$signal</strong> 正在处理的信号。
                                   <strong>$siginfo</strong> 如果操作系统支持 siginfo_t 结构体，这将是依赖于信号的信
                                   号信息数组。
                                   
                                   正在处理的信号。
                                   
                                   如果操作系统支持 siginfo_t 结构体，这将是依赖于信号的信号信息数
                                   组。
                                   
                                   请注意，当处理程序设置为对象方法时，该对象的引用计数会增加，这会
                                   使其持续存在，直到将处理程序更改为其他内容或脚本结束为止。
  <info>int</info>           <strong>$signal</strong>            正在处理的信号。
  <info>mixed</info>         <strong>$siginfo</strong>           如果操作系统支持 siginfo_t 结构体，这将是依赖于信号的信号信息数
                                   组。
  <info>bool</info>          <strong>$restart_syscalls</strong>  指定当信号到达时系统调用重启是否可用。（译注：经查资料，此参数意
                                   为系统调用被信号打断时，系统调用是否从 开始处重新开始，但根据
                                   http://bugs.php.net/bug.php?id=52121，此参数存在bug无效。）

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_waitpid()</strong>


id: pcntl_signal_dispatch
type: function
doc:
<comment>Description:</comment>
  调用等待信号的处理程序
  
  <strong>pcntl_signal_dispatch()</strong> 函数调用每个等待信号通过 <strong>pcntl_signal()</strong> 安装的处理程序。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigwaitinfo()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_signal_get_handler
type: function
doc:
<comment>Description:</comment>
  Get the current handler for specified signal
  
  The <strong>pcntl_signal_get_handler()</strong> function will get the current handler for the specified <strong>$signal</strong>.

<comment>Param:</comment>
  <info>int</info>  <strong>$signal</strong>  The signal number.

<comment>Return:</comment>
  <info>callable|int</info>  This function may return an integer value that refers to <info>SIG_DFL</info> or <info>SIG_IGN</info>. If a
                custom handler has been set, that <info>callable</info> is returned.

<comment>See Also:</comment>
   * <strong>pcntl_signal()</strong>


id: pcntl_sigprocmask
type: function
doc:
<comment>Description:</comment>
  设置或检索阻塞信号
  
  <strong>pcntl_sigprocmask()</strong> 函数用来增加，删除或设置阻塞信号，具体行为依赖于参数 <strong>$mode</strong>。

<comment>Param:</comment>
  <info>int</info>    <strong>$mode</strong>         设置 <strong>pcntl_sigprocmask()</strong> 函数的行为。可选值:  <info>SIG_BLOCK</info>: 把信号加入到当前阻塞
                       信号中。<info>SIG_UNBLOCK</info>: 从当前阻塞信号中移出信号。<info>SIG_SETMASK</info>: 用给定的信号列表
                       替换当前阻塞信号列表。
  <info>array</info>  <strong>$signals</strong>      信号列表。
  <info>array</info>  <strong>$old_signals</strong>  <strong>$old_signals</strong> 参数设置为数组，包含先前阻塞的信号列表。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_sigwaitinfo()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_sigtimedwait
type: function
doc:
<comment>Description:</comment>
  带超时机制的信号等待
  
  <strong>pcntl_sigtimedwait()</strong> 函数实际上与 <strong>pcntl_sigwaitinfo()</strong> 的行为一致，不同在于它多了两个增强参数
  <strong>$seconds</strong> 和 <strong>$nanoseconds</strong>，这使得脚本等待的事件有了一个时间的上限。

<comment>Param:</comment>
  <info>array</info>  <strong>$signals</strong>      要等待的信号列表数组。
  <info>array</info>  <strong>$info</strong>         <strong>$info</strong> 设置为数组，包含信号的信息。参见 <strong>pcntl_sigwaitinfo()</strong>。
  <info>int</info>    <strong>$seconds</strong>      超时秒数。
  <info>int</info>    <strong>$nanoseconds</strong>  超时纳秒数。

<comment>Return:</comment>
  <info>int|false</info>  成功时 <strong>pcntl_sigtimedwait()</strong> 返回信号编号， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigwaitinfo()</strong>


id: pcntl_sigwaitinfo
type: function
doc:
<comment>Description:</comment>
  等待信号
  
  <strong>pcntl_sigwaitinfo()</strong> 函数暂停调用脚本的执行直到接收到 <strong>$signals</strong> 参数中列出的某个信号。只要其中的一个
  信号已经在等待状态（比如：通过 <strong>pcntl_sigprocmask()</strong> 函数阻塞），<strong>pcntl_sigwaitinfo()</strong> 就回立刻返回。

<comment>Param:</comment>
  <info>array</info>  <strong>$signals</strong>  要等待的信号数组。
  <info>array</info>  <strong>$info</strong>     <strong>$info</strong> 参数设置为数组，包含信号信息。
                   
                   以下元素会为所有信号设置： signo：信号编号errno：错误编号code：信号代码
                   
                   下面元素可能会为 <info>SIGCHLD</info> 信号设置： status：退出的值或信号utime：用户消耗的时间
                   stime：系统（内核）消耗的时间pid：发送进程IDuid：发送进程的实际用户ID
                   
                   信号 <info>SIGILL</info>, <info>SIGFPE</info>, <info>SIGSEGV</info> 和 <info>SIGBUS</info> 可能会被设置的元素: addr：发生故障的内存位
                   置
                   
                   可能会为 <info>SIGPOLL</info> 信号设置的元素： band：Band eventfd：文件描述符

<comment>Return:</comment>
  <info>int|false</info>  成功时返回信号编号， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_sigprocmask()</strong>
   * <strong>pcntl_sigtimedwait()</strong>


id: pcntl_strerror
type: function
doc:
<comment>Description:</comment>
  Retrieve the system error message associated with the given errno
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>  <strong>$error_code</strong>  

<comment>Return:</comment>
  <info>string</info>  Returns error description.

<comment>See Also:</comment>
   * <strong>pcntl_get_last_error()</strong>


id: pcntl_unshare
type: function
doc:
<comment>Description:</comment>
  Dissociates parts of the process execution context
  
  <strong>pcntl_unshare()</strong> allows a process to disassociate parts of its execution context that are currently
  being shared with other processes. The main use of <strong>pcntl_unshare()</strong> is to allow a process to
  control its shared execution context without creating a new process.

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  The <strong>$flags</strong> parameter is a bitmask that specifies which parts of the execution context
               should be unshared. This parameter is specified by ORing together zero or more of the
               <return>CLONE_*</return> constants:
               <info>CLONE_NEWNS</info><info>CLONE_NEWIPC</info><info>CLONE_NEWUTS</info><info>CLONE_NEWNET</info><info>CLONE_NEWPID</info><info>CLONE_NEWUSER</info><info>CLONE_NEWCGROUP</info>

<comment>Return:</comment>
  <info>bool</info>  Returns <return>0</return> on success, <return>-1</return> otherwise. On failure it sets an error code, that can be retrieved
        with <strong>pcntl_get_last_error()</strong>.

<comment>See Also:</comment>
   * PCNTL Constants
   * <strong>pcntl_get_last_error()</strong>


id: pcntl_wait
type: function
doc:
<comment>Description:</comment>
  等待或返回 fork 的子进程状态
  
  wait 函数挂起当前进程的执行直到一个子进程退出或接收到一个信号要求中断当前进程或调用一个信号处理函
  数。如果一个子进程在调用此函数时已经退出（俗称僵尸进程），此函数立刻返回。子进程使用的所有系统资源
  将被释放。关于 wait 在您系统上工作的详细规范请查看您系统的 wait（2）手册。
  
  这个函数等同于以 <return>-1</return> 作为参数 <strong>$process_id</strong> 的值并且没有 <strong>$flags</strong> 参数来调用 <strong>pcntl_waitpid()</strong> 函数。

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  <strong>pcntl_wait()</strong> 将会存储状态信息到 <strong>$status</strong> 参数上，这个通过 <strong>$status</strong> 参数返回的状态信息
                可以用以下函数 <strong>pcntl_wifexited()</strong>、 <strong>pcntl_wifstopped()</strong>、 <strong>pcntl_wifsignaled()</strong>、
                <strong>pcntl_wexitstatus()</strong>、 <strong>pcntl_wtermsig()</strong> 以及 <strong>pcntl_wstopsig()</strong> 获取其具体的值。
  <info>int</info>  <strong>$flags</strong>   如果操作系统（多数 BSD 类系统）允许使用 wait3，可以提供可选的 <strong>$flags</strong> 参数。如果这个
                参数没有提供，wait 将会被用作系统调用。如果 wait3 不可用，提供参数 <strong>$flags</strong> 不会有任何
                效果。<strong>$flags</strong> 的值可以是以下两个常量中 0 个或多个 <return>OR</return> 运算的结果： <strong>$flags</strong> 可用值
                <return>WNOHANG</return> 如果没有子进程退出立刻返回。 <return>WUNTRACED</return> 子进程已经退出并且其状态未报告时返
                回。

<comment>Return:</comment>
  <info>int</info>  <strong>pcntl_wait()</strong> 返回退出的子进程进程号，发生错误时返回 -1，如果提供了 WNOHANG 作为 option（wait3
       可用的系统）并且没有可用子进程时返回 0。

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifexited()</strong>
   * <strong>pcntl_wifstopped()</strong>
   * <strong>pcntl_wifsignaled()</strong>
   * <strong>pcntl_wexitstatus()</strong>
   * <strong>pcntl_wtermsig()</strong>
   * <strong>pcntl_wstopsig()</strong>
   * <strong>pcntl_waitpid()</strong>


id: pcntl_waitpid
type: function
doc:
<comment>Description:</comment>
  等待或返回 fork 的子进程状态
  
  挂起当前进程的执行直到参数 <strong>$process_id</strong> 指定的进程号的进程退出， 或接收到一个信号要求中断当前进程或
  调用一个信号处理函数。
  
  如果 <strong>$process_id</strong> 指定的子进程在此函数调用时已经退出（俗称僵尸进程），此函数 将立刻返回。关于
  waitpid 更详细的规范请参见系统的 waitpid（2）手册。

<comment>Param:</comment>
  <info>int</info>  <strong>$process_id</strong>  参数 <strong>$process_id</strong> 的值可以是以下之一： <strong>$process_id</strong> 可选值<return>\< -1</return> 等待任意进程组 ID
                    等于参数 <strong>$process_id</strong> 给定值的绝对值的进程。 <return>-1</return> 等待任意子进程；与 wait 函数行为
                    一致。 <return>0</return> 等待任意与调用进程组 ID 相同的子进程。 <return>&gt; 0</return> 等待进程号等于参数
                    <strong>$process_id</strong> 值的子进程。
                    
                    指定 <return>-1</return> 作为 <strong>$process_id</strong> 的值等同于 <strong>pcntl_wait()</strong> 提供（负的 <strong>$flags</strong>）。
  <info>int</info>  <strong>$status</strong>      <strong>pcntl_waitpid()</strong> 将会存储状态信息到 <strong>$status</strong> 参数上，这个通过 <strong>$status</strong> 参数返回的状
                    态信息可以用以下函数 <strong>pcntl_wifexited()</strong>、 <strong>pcntl_wifstopped()</strong>、
                    <strong>pcntl_wifsignaled()</strong>、 <strong>pcntl_wexitstatus()</strong>、 <strong>pcntl_wtermsig()</strong> 以及
                    <strong>pcntl_wstopsig()</strong> 获取其具体的值。
  <info>int</info>  <strong>$flags</strong>       <strong>$flags</strong> 的值可以是以下两个常量中 0 个或多个 <return>OR</return> 运算的结果： <strong>$flags</strong> 可用的值
                    <return>WNOHANG</return> 如果没有子进程退出立刻返回。 <return>WUNTRACED</return> 子进程已经退出并且其状态未报告时
                    返回。

<comment>Return:</comment>
  <info>int</info>  <strong>pcntl_waitpid()</strong> 返回退出的子进程进程号，发生错误时返回 -1，如果使用 <info>WNOHANG</info> 并且没有可用子进
       程时返回 0。

<comment>See Also:</comment>
   * <strong>pcntl_fork()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifexited()</strong>
   * <strong>pcntl_wifstopped()</strong>
   * <strong>pcntl_wifsignaled()</strong>
   * <strong>pcntl_wexitstatus()</strong>
   * <strong>pcntl_wtermsig()</strong>
   * <strong>pcntl_wstopsig()</strong>


id: pcntl_wexitstatus
type: function
doc:
<comment>Description:</comment>
  返回一个中断的子进程的返回代码
  
  返回一个中断的子进程的返回代码。这个函数仅在函数 <strong>pcntl_wifexited()</strong> 返回 <info>true</info> 时有效。

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  参数
                <strong>$status</strong> 是提供给成功调用 <strong>pcntl_waitpid()</strong>
                时的状态参数。

<comment>Return:</comment>
  <info>int|false</info>  返回子进程返回代码。如果操作系统不支持该功能，将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wifexited()</strong>


id: pcntl_wifexited
type: function
doc:
<comment>Description:</comment>
  检查状态代码是否代表一个正常的退出
  
  检查子进程状态代码是否代表正常退出。

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  参数
                <strong>$status</strong> 是提供给成功调用 <strong>pcntl_waitpid()</strong>
                时的状态参数。

<comment>Return:</comment>
  <info>bool</info>  当子进程状态代码代表正常退出时返回 <info>true</info>，其他情况返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wexitstatus()</strong>


id: pcntl_wifsignaled
type: function
doc:
<comment>Description:</comment>
  检查子进程状态码是否代表由于某个信号而中断
  
  检查子进程是否是由于某个未捕获的信号退出的。

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  参数
                <strong>$status</strong> 是提供给成功调用 <strong>pcntl_waitpid()</strong>
                时的状态参数。

<comment>Return:</comment>
  <info>bool</info>  如果子进程是由于某个未捕获的信号退出的返回 <info>true</info>，其他情况返回 <info>false</info> 。

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>


id: pcntl_wifstopped
type: function
doc:
<comment>Description:</comment>
  检查子进程当前是否已经停止
  
  仅查子进程当前是否停止；此函数只有作用于使用了 <return>WUNTRACED</return> 作为 option 的 <strong>pcntl_waitpid()</strong> 函数调用产
  生的 status 时才有效。

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  参数
                <strong>$status</strong> 是提供给成功调用 <strong>pcntl_waitpid()</strong>
                时的状态参数。

<comment>Return:</comment>
  <info>bool</info>  如果子进程当前是停止的返回 <info>true</info>，其他情况返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>


id: pcntl_wstopsig
type: function
doc:
<comment>Description:</comment>
  返回导致子进程停止的信号
  
  返回导致子进程停止的信号编号。这个函数仅在 <strong>pcntl_wifstopped()</strong> 返回 <info>true</info> 时有效。

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  参数
                <strong>$status</strong> 是提供给成功调用 <strong>pcntl_waitpid()</strong>
                时的状态参数。

<comment>Return:</comment>
  <info>int|false</info>  返回信号编号。如果操作系统不支持该功能，将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_wifstopped()</strong>


id: pcntl_wtermsig
type: function
doc:
<comment>Description:</comment>
  返回导致子进程中断的信号
  
  返回导致子进程中断的信号编号。这个函数仅在 <strong>pcntl_wifsignaled()</strong> 返回 <info>true</info> 时有效。

<comment>Param:</comment>
  <info>int</info>  <strong>$status</strong>  参数
                <strong>$status</strong> 是提供给成功调用 <strong>pcntl_waitpid()</strong>
                时的状态参数。

<comment>Return:</comment>
  <info>int|false</info>  返回信号编号。如果操作系统不支持该功能，将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pcntl_waitpid()</strong>
   * <strong>pcntl_signal()</strong>
   * <strong>pcntl_wifsignaled()</strong>


id: pfsockopen
type: function
doc:
<comment>Description:</comment>
  打开持久的 Internet 或 Unix 套接字连接
  
  这个函数的作用与 <strong>fsockopen()</strong> 完全一样，不同的地方在于当在脚本执行完后，连接一直不会关闭。可以说它
  是 <strong>fsockopen()</strong> 的长连接版本。

<comment>Return:</comment>
  <info>resource|false</info>  <strong>pfsockopen()</strong> 返回文件指针，可以跟其他文件函数（比如 <strong>fgets()</strong>、<strong>fgetss()</strong>、<strong>fwrite()</strong>、
                  <strong>fclose()</strong> 和 <strong>feof()</strong>）一起使用， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>fsockopen()</strong>


id: pg_affected_rows
type: function
doc:
<comment>Description:</comment>
  返回受影响的记录数（元组）
  
  <strong>pg_affected_rows()</strong> 返回受 <return>INSERT</return>、<return>UPDATE</return> 和 <return>DELETE</return> 查询影响的元组数（实例/记录/行）。
  
  从 PostgreSQL 9.0 及更高版本开始，服务器返回 SELECT 的行数。较旧的 PostgreSQL 则返回 0。
  
  此函数过去称为 <strong>pg_cmdtuples()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。

<comment>Return:</comment>
  <info>int</info>  受查询影响的行数。如果没有元组受到影响，它将返回 <return>0</return>。

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_query_params()</strong>
   * <strong>pg_execute()</strong>
   * <strong>pg_num_rows()</strong>


id: pg_cancel_query
type: function
doc:
<comment>Description:</comment>
  取消异步查询
    
  
  <strong>pg_cancel_query()</strong> 取消由 <strong>pg_send_query()</strong>、<strong>pg_send_query_params()</strong> 或 <strong>pg_send_execute()</strong> 发送的异步查
  询。不能取消使用 <strong>pg_query()</strong> 执行的查询。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_send_query()</strong>
   * <strong>pg_connection_busy()</strong>


id: pg_client_encoding
type: function
doc:
<comment>Description:</comment>
  获取客户端编码
    
  
  PostgreSQL 支持某些字符集在服务器和客户端之间自动进行字符集转换。<strong>pg_client_encoding()</strong> 以字符串形式
  返回客户端编码。返回的字符串将是标准的 PostgreSQL 编码标识符之一。
  
  此函数需要 PostgreSQL 7.0 或更高版本。如果 libpq 在没有多字节编码支持的情况下编译，
  <strong>pg_client_encoding()</strong> 总是返回 <return>SQL_ASCII</return>。支持的编码取决于 PostgreSQL 版本。请参阅 PostgreSQL 文档
  支持的编码。
  
  此函数过去称为 <strong>pg_clientencoding()</strong>。

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  客户端编码。

<comment>See Also:</comment>
   * <strong>pg_set_client_encoding()</strong>


id: pg_close
type: function
doc:
<comment>Description:</comment>
  关闭 PostgreSQL 连接
  
  <strong>pg_close()</strong> 关闭与指定 <strong>$connection</strong> 实例关联的 PostgreSQL 数据库的非持久连接。
  
  通常不需要使用 <strong>pg_close()</strong>，因为打开的非持久连接会在脚本结束时自动关闭。
  
  如果连接上有打开的 <class>PgSql\Lob</class> 实例，请不要在关闭所有 <class>PgSql\Lob</class> 实例之前关闭连接。

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>


id: pg_connect
type: function
doc:
<comment>Description:</comment>
  打开 PostgreSQL 连接
  
  <strong>pg_connect()</strong> 打开通过 <strong>$connection_string</strong> 指定的 PostgreSQL 数据库的连接。
  
  如果使用与现有连接相同的 <strong>$connection_string</strong> 对 <strong>pg_connect()</strong> 进行第二次调用，将返回现有连接，除非将
  <info>PGSQL_CONNECT_FORCE_NEW</info> 作为 <strong>$flags</strong> 传递。
  
  弃用有多个参数的旧语法 $conn = pg_connect("host", "port", "options", "tty", "dbname")。

<comment>Param:</comment>
  <info>string</info>  <strong>$connection_string</strong>  <strong>$connection_string</strong> 可以为空以使用所有默认参数，或者可以包含一个或多个
                              由空格分隔的参数设置。 每个参数设置的形式为 <return>keyword = value</return>。等号两旁
                              的空格是可选的。写入空值或包含空格的值，请用单引号将其括起来，例如
                              <return>keyword = 'a value'</return>。值中的单引号和反斜线必须使用反斜线转义，即 \' 和
                              \\。
                              
                              当前可识别的参数关键字有 <strong>$host</strong>、<strong>$hostaddr</strong>、<strong>$port</strong>、<strong>$dbname</strong>（默认为
                              <strong>$user</strong> 的值）、<strong>$user</strong>、<strong>$password</strong>、<strong>$connect_timeout</strong>、<strong>$options</strong>、<strong>$tty</strong>（忽
                              略）、<strong>$sslmode</strong>、<strong>$requiressl</strong>（弃用 <strong>$sslmode</strong>）和 <strong>$service</strong>。存在哪些参数
                              取决于 PostgreSQL 版本。
                              
                              The <strong>$options</strong> parameter can be used to set command line parameters  to
                              be invoked by the server.
  <info>int</info>     <strong>$flags</strong>              如果传递 <info>PGSQL_CONNECT_FORCE_NEW</info>，将会创建新连接，即使
                              <strong>$connection_string</strong> 与现有连接相同。
                              
                              如果指定 <info>PGSQL_CONNECT_ASYNC</info>，然后连接是异步创建。连接状态可以通过
                              <strong>pg_connect_poll()</strong> 或 <strong>pg_connection_status()</strong> 检测。

<comment>Return:</comment>
  <info>PgSql\Connection|false</info>  成功时返回 <class>PgSql\Connection</class> 实例， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_pconnect()</strong>
   * <strong>pg_close()</strong>
   * <strong>pg_host()</strong>
   * <strong>pg_port()</strong>
   * <strong>pg_tty()</strong>
   * <strong>pg_options()</strong>
   * <strong>pg_dbname()</strong>


id: pg_connect_poll
type: function
doc:
<comment>Description:</comment>
  对正在进行尝试进行异步的 PostgreSQL 连接轮询其状态。
    
  
  <strong>pg_connect_poll()</strong> 轮询通过 <info>PGSQL_CONNECT_ASYNC</info> 选项调用 <strong>pg_connect()</strong> 创建的 PostgreSQL 连接的状
  态。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>int</info>  返回 <info>PGSQL_POLLING_FAILED</info>、<info>PGSQL_POLLING_READING</info>、<info>PGSQL_POLLING_WRITING</info>、<info>PGSQL_POLLING_OK</info> 或
       <info>PGSQL_POLLING_ACTIVE</info>。


id: pg_connection_busy
type: function
doc:
<comment>Description:</comment>
  获取连接是否繁忙
    
  
  <strong>pg_connection_busy()</strong> 确定连接是否繁忙。如果繁忙，则之前的查询仍在执行。如果在连接上使用
  <strong>pg_get_result()</strong>，将被阻塞。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>bool</info>  如果连接繁忙返回 <info>true</info>，否则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_connection_status()</strong>
   * <strong>pg_get_result()</strong>


id: pg_connection_reset
type: function
doc:
<comment>Description:</comment>
  重置连接（再次连接）
    
  
  <strong>pg_connection_reset()</strong> 重置连接。用于错误恢复。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>
   * <strong>pg_pconnect()</strong>
   * <strong>pg_connection_status()</strong>


id: pg_connection_status
type: function
doc:
<comment>Description:</comment>
  获取连接状态
    
  
  <strong>pg_connection_status()</strong> 返回指定 <strong>$connection</strong> 的状态。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>int</info>  <info>PGSQL_CONNECTION_OK</info> 或 <info>PGSQL_CONNECTION_BAD</info>。

<comment>See Also:</comment>
   * <strong>pg_connection_busy()</strong>


id: pg_consume_input
type: function
doc:
<comment>Description:</comment>
  Reads input on the connection
  
  <strong>pg_consume_input()</strong> consumes any input waiting to be read from the database server.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if no error occurred, or <info>false</info> if there was an error. Note that <info>true</info> does not
        necessarily indicate that input was waiting to be read.


id: pg_convert
type: function
doc:
<comment>Description:</comment>
  将关联的数组值转换为适合 SQL 语句的格式
    
  
  <strong>pg_convert()</strong> 检查 <return>values</return> 中的值并将其转换为为适用于 SQL 语句的值。<strong>pg_convert()</strong> 的前提条件是现有的
  表 <return>table_name</return> 中具有的列至少有 <return>values</return> 中的单元那么多。<return>table_name</return> 中的字段名以及字段值必须匹配
  <return>values</return> 中的索引，并且相应的数据类型必须兼容。成功时返回包含转换后的值的数组，否则返回 <info>false</info>。
  
  接受 bool 值并转换为 PostgreSQL boolean 值。还支持 bool 值的字符串表示。<info>null</info> 转换为 PostgreSQL
  NULL。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。
  <info>string</info>            <strong>$table_name</strong>  要转换类型的表名。
  <info>array</info>             <strong>$values</strong>      要转换的数据。
  <info>int</info>               <strong>$flags</strong>       <info>PGSQL_CONV_IGNORE_DEFAULT</info>、<info>PGSQL_CONV_FORCE_NULL</info> 或
                                 <info>PGSQL_CONV_IGNORE_NOT_NULL</info> 的任意数量组合。

<comment>Return:</comment>
  <info>array|false</info>  转换值后的 <info>array</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_meta_data()</strong>
   * <strong>pg_insert()</strong>
   * <strong>pg_select()</strong>
   * <strong>pg_update()</strong>
   * <strong>pg_delete()</strong>


id: pg_copy_from
type: function
doc:
<comment>Description:</comment>
  将数组中的记录插入到表
    
  
  <strong>pg_copy_from()</strong> 将 <strong>$rows</strong> 插入记录到表中。在内部发出 <return>COPY FROM</return> 命令以插入记录。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。
  <info>string</info>            <strong>$table_name</strong>  复制 <strong>$rows</strong> 到其中的表名。
  <info>array</info>             <strong>$rows</strong>        要复制 <info>array</info> 中的数据到 <strong>$table_name</strong>。<strong>$rows</strong> 中的每个值都成为
                                 <strong>$table_name</strong> 中的一行。<strong>$rows</strong> 中的每个值都应该用字符串分割以插入到每
                                 个字段。值应该换行终止。
  <info>string</info>            <strong>$separator</strong>   <strong>$rows</strong> 的每个元素分割为每个字段的值的标记。默认为 <return>\t</return>。
  <info>string</info>            <strong>$null_as</strong>     SQL <return>NULL</return> 值在 <strong>$rows</strong> 中的表示方式。默认为 <return>\\N</return>（<return>"\\\\N"</return>）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_copy_to()</strong>


id: pg_copy_to
type: function
doc:
<comment>Description:</comment>
  将表复制到数组
    
  
  <strong>pg_copy_to()</strong> 将表复制到数组。在内部发出 <return>COPY TO</return> 命令来检索记录。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。
  <info>string</info>            <strong>$table_name</strong>  从表中将数据复制到 <strong>$rows</strong> 中的表名。
  <info>string</info>            <strong>$separator</strong>   <strong>$rows</strong> 的每个元素分割为每个字段的值的标记。默认为 <return>\t</return>。
  <info>string</info>            <strong>$null_as</strong>     SQL <return>NULL</return> 值在 <strong>$rows</strong> 中的表示方式。默认为 <return>\\N</return>（<return>"\\\\N"</return>）。

<comment>Return:</comment>
  <info>array|false</info>  <return>COPY</return> 数据的每一行都作为一个元素组成的 <info>array</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_copy_from()</strong>


id: pg_dbname
type: function
doc:
<comment>Description:</comment>
  获取数据库名称
  
  <strong>pg_dbname()</strong> 返回指定 PostgreSQL <strong>$connection</strong> 实例的数据库名称。

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  包含 <strong>$connection</strong> 到的数据库名称的 <info>string</info>。


id: pg_delete
type: function
doc:
<comment>Description:</comment>
  删除记录
    
  
  <strong>pg_delete()</strong> 从 <strong>$conditions</strong> 中的键和值指定的表中删除记录。
  
  如果指定 <strong>$flags</strong>，则 <strong>pg_convert()</strong> 应用于具有指定 flag 的 <strong>$conditions</strong>。
  
  默认 <strong>pg_delete()</strong> 传递原始值。值必须转义或者 <strong>$flags</strong> 必须指定 <info>PGSQL_DML_ESCAPE</info> flag。
  <info>PGSQL_DML_ESCAPE</info> 引用并转义参数/标识符。因此，table/column 名称变为区分大小写。
  
  注意转义和预处理查询都不能保护 LIKE 查询、JSON、Array、Regex 等，这些参数要根据上下文来处理。即转
  义/验证值。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。
  <info>string</info>            <strong>$table_name</strong>  要从中删除行的表名。
  <info>array</info>             <strong>$conditions</strong>  <info>array</info>，其键为表 <strong>$table_name</strong> 中的字段名，其值为要删除的那些字段的
                                 值。
  <info>int</info>               <strong>$flags</strong>       任意数量 <info>PGSQL_CONV_FORCE_NULL</info>、<info>PGSQL_DML_NO_CONV</info>、
                                 <info>PGSQL_DML_ESCAPE</info>、<info>PGSQL_DML_EXEC</info>、<info>PGSQL_DML_ASYNC</info> 或
                                 <info>PGSQL_DML_STRING</info> 的组合。如果 <info>PGSQL_DML_STRING</info> 是 <strong>$flags</strong> 的一部分，
                                 则返回查询字符串。当设置 <info>PGSQL_DML_NO_CONV</info> 或 <info>PGSQL_DML_ESCAPE</info> 时，
                                 不会在内部调用 <strong>pg_convert()</strong>。

<comment>Return:</comment>
  <info>string|bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。如果通过 <strong>$flags</strong> 传递 <info>PGSQL_DML_STRING</info>，则返
               回 <info>string</info>。

<comment>See Also:</comment>
   * <strong>pg_convert()</strong>


id: pg_end_copy
type: function
doc:
<comment>Description:</comment>
  与 PostgreSQL 后端同步
  
  <strong>pg_end_copy()</strong> 在处理完 <strong>pg_put_line()</strong> 所执行的拷贝操作之后将 PostgreSQL 前端（通常为 web server 进
  程）与 PostgreSQL 服务器进行同步。<strong>pg_end_copy()</strong> 必须被调用，否则 PostgreSQL 服务器可能会和前端失去
  同步并报错。

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_put_line()</strong>


id: pg_escape_bytea
type: function
doc:
<comment>Description:</comment>
  转义字符串以插入到 bytea 字段
    
  
  <strong>pg_escape_bytea()</strong> 转义 bytea 数据类型的字符串。返回转义后的字符串。
  
  当 <return>SELECT</return> bytea 类型时，PostgreSQL 返回前缀为“\”的八进制字节值（例如 \032）。用户需要手动转换为二
  进制格式。
  
  本函数需要 PostgreSQL 7.2 及其更高版本。在 PostgreSQL 7.2.0 和 7.2.1 版中，如果使用了多字节支持，
  必须强制转换 bytea 类型。即 <return>INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);</return>，在
  PostgreSQL 7.2.2 及其更高版本不需要强制转换。异常情况是当客户端和后端字符编码不匹配时，可能会有多
  字节流错误。然后用户必须强制转换 bytea 以避免此错误。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        包含要插入到 bytea 列中的文本或二进制数据的 <info>string</info>。

<comment>Return:</comment>
  <info>string</info>  包含转义数据的 <info>string</info>。

<comment>See Also:</comment>
   * <strong>pg_unescape_bytea()</strong>
   * <strong>pg_escape_string()</strong>


id: pg_escape_identifier
type: function
doc:
<comment>Description:</comment>
  Escape a identifier for insertion into a text field
    
  
  <strong>pg_escape_identifier()</strong> escapes a identifier (e.g. table, field names) for querying the database.
  It returns an escaped identifier string for PostgreSQL server. <strong>pg_escape_identifier()</strong> adds double
  quotes before and after data. Users should not add double quotes. Use of this function is
  recommended for identifier parameters in query. For SQL literals (i.e. parameters except bytea),
  <strong>pg_escape_literal()</strong> or <strong>pg_escape_string()</strong> must be used. For bytea type fields, <strong>pg_escape_bytea()</strong>
  must be used instead.
  
  This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        A <info>string</info> containing text to be escaped.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the escaped data.

<comment>See Also:</comment>
   * <strong>pg_escape_literal()</strong>
   * <strong>pg_escape_bytea()</strong>
   * <strong>pg_escape_string()</strong>


id: pg_escape_literal
type: function
doc:
<comment>Description:</comment>
  Escape a literal for insertion into a text field
    
  
  <strong>pg_escape_literal()</strong> escapes a literal for querying the PostgreSQL database. It returns an escaped
  literal in the PostgreSQL format. <strong>pg_escape_literal()</strong> adds quotes before and after data. Users
  should not add quotes. Use of this function is recommended instead of <strong>pg_escape_string()</strong>.  If the
  type of the column is bytea, <strong>pg_escape_bytea()</strong> must be used instead. For escaping identifiers
  (e.g. table, field names), <strong>pg_escape_identifier()</strong> must be used.
  
  This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        A <info>string</info> containing text to be escaped.

<comment>Return:</comment>
  <info>string</info>  A <info>string</info> containing the escaped data.

<comment>See Also:</comment>
   * <strong>pg_escape_identifier()</strong>
   * <strong>pg_escape_bytea()</strong>
   * <strong>pg_escape_string()</strong>


id: pg_escape_string
type: function
doc:
<comment>Description:</comment>
  转义字符串以供查询
    
  
  <strong>pg_escape_string()</strong> 转义用于查询数据库的字符串。它返回不带引号的 PostgreSQL 格式的转义字符串。
  <strong>pg_escape_literal()</strong> 是为 PostgreSQL 转义 SQL 参数的首选方法。<strong>addslashes()</strong> 不得与 PostgreSQL 一起使
  用。如果列的类型是 bytea，则必须改用 <strong>pg_escape_bytea()</strong>。<strong>pg_escape_identifier()</strong> 必须用于转义标识符
  （例如表名、字段名）
  
  本函数需要 PostgreSQL 7.2 及其更高版本。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$data</strong>        包含要转义的 <info>string</info>。

<comment>Return:</comment>
  <info>string</info>  包含转义数据的 <info>string</info>。

<comment>See Also:</comment>
   * <strong>pg_escape_bytea()</strong>


id: pg_execute
type: function
doc:
<comment>Description:</comment>
  Sends a request to execute a prepared statement with given parameters, and waits for the result
  
  Sends a request to execute a prepared statement with given parameters, and  waits for the result.
  
  <strong>pg_execute()</strong> is like <strong>pg_query_params()</strong>,  but the command to be executed is  specified by naming a
  previously-prepared statement, instead of giving a  query string. This feature allows commands
  that will be used repeatedly to  be parsed and planned just once, rather than each time they are
  executed.  The statement must have been prepared previously in the current session.  <strong>pg_execute()</strong>
  is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier
  versions.
  
  The parameters are identical to <strong>pg_query_params()</strong>, except that the name of a  prepared statement
  is given instead of a query string.

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$stmtname</strong>    The name of the prepared statement to execute.  if "" is specified,
                                 then the unnamed statement is executed.  The name must have been
                                 previously prepared using <strong>pg_prepare()</strong>,  <strong>pg_send_prepare()</strong> or a
                                 <return>PREPARE</return> SQL command.
  <info>array</info>             <strong>$params</strong>      An array of parameter values to substitute for the $1, $2, etc.
                                 placeholders in the original prepared query string.  The number of
                                 elements in the array must match the number of placeholders.
                                 
                                 Elements are converted to strings by calling this function.

<comment>Return:</comment>
  <info>PgSql\Result|false</info>  An <class>PgSql\Result</class> instance on success,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>pg_prepare()</strong>
   * <strong>pg_send_prepare()</strong>
   * <strong>pg_query_params()</strong>


id: pg_fetch_all
type: function
doc:
<comment>Description:</comment>
  从结果中获取所有行作为数组
  
  <strong>pg_fetch_all()</strong> 返回包含 <class>PgSql\Result</class> 实例中所有行（记录）的数组。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$mode</strong>    An optional parameter that controls how the returned <info>array</info> is indexed.
                         <strong>$mode</strong> is a constant and can take the following values:
                         <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                         Using <info>PGSQL_NUM</info>, the function will return an array with numerical indices,
                         using <info>PGSQL_ASSOC</info> it will return only associative indices
                         while <info>PGSQL_BOTH</info> will return both numerical and associative indices.

<comment>Return:</comment>
  <info>array</info>  包含结果中所有行的 <info>array</info>。每行都是一个由字段名作为索引的字段值数组。

<comment>See Also:</comment>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_all_columns
type: function
doc:
<comment>Description:</comment>
  Fetches all rows in a particular result column as an array
  
  <strong>pg_fetch_all_columns()</strong> returns an array that contains all rows (records) in a particular column of
  the <class>PgSql\Result</class> instance.
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$field</strong>   Column number. Defaults to the first column if not specified.

<comment>Return:</comment>
  <info>array</info>  An <info>array</info> with all values in the result column.

<comment>See Also:</comment>
   * <strong>pg_fetch_all()</strong>


id: pg_fetch_array
type: function
doc:
<comment>Description:</comment>
  获取一行作为数组
  
  <strong>pg_fetch_array()</strong> 返回与所提取的行（元组/记录）相一致的数组。
  
  <strong>pg_fetch_array()</strong> 是 <strong>pg_fetch_row()</strong> 的扩展版本。在结果数组中不仅以数字索引（字段编号）方式存放数
  据，还用关联索引（字段名）存储数据。它默认存储两个索引。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。
  
  使用 <strong>pg_fetch_array()</strong> 并不比 <strong>pg_fetch_row()</strong> 慢的明显，而且在使用中提供了更大的方便。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int|null</info>      <strong>$row</strong>     要获取的结果中的行号。行从 0 向上编号。如果省略或为 <info>null</info>，则获取下一行。
  <info>int</info>           <strong>$mode</strong>    An optional parameter that controls how the returned <info>array</info> is indexed.
                         <strong>$mode</strong> is a constant and can take the following values:
                         <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                         Using <info>PGSQL_NUM</info>, the function will return an array with numerical indices,
                         using <info>PGSQL_ASSOC</info> it will return only associative indices
                         while <info>PGSQL_BOTH</info> will return both numerical and associative indices.

<comment>Return:</comment>
  <info>array|false</info>  数字方式（从 0 开始）或关联方式（按字段名索引）或两者共同索引的 <info>array</info>。<info>array</info> 中的每个
               值都表示为 <info>string</info>。数据库 <return>NULL</return> 值作为 <info>null</info> 返回。
               
               如果 <strong>$row</strong> 超过集合中的行数、没有更多行或任何其他错误，则返回 <info>false</info>。从 SELECT 以外的
               查询结果中获取也将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_assoc
type: function
doc:
<comment>Description:</comment>
  获取一行作为关联数组
  
  <strong>pg_fetch_assoc()</strong> 返回与所提取的行（元组/记录）相一致的关联数组。
  
  <strong>pg_fetch_assoc()</strong> 等同于调用 <info>PGSQL_ASSOC</info> 作为第三个参数的 <strong>pg_fetch_array()</strong>。其仅返回关联数组。如果
  需要数字索引，使用 <strong>pg_fetch_row()</strong>。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。
  
  使用 <strong>pg_fetch_assoc()</strong> 并不比 <strong>pg_fetch_row()</strong> 慢的明显，而且在使用中提供了更大的方便。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int|null</info>      <strong>$row</strong>     要获取的结果中的行号。行从 0 向上编号。如果省略或为 <info>null</info>，则获取下一行。

<comment>Return:</comment>
  <info>array|false</info>  关联方式（按字段名）的 <info>array</info>。<info>array</info> 中的每个值都表示为 <info>string</info>。数据库 <return>NULL</return> 值作为
               <info>null</info> 返回。
               
               如果 <strong>$row</strong> 超过集合中的行数、没有更多行或任何其他错误，则返回 <info>false</info>。从 SELECT 以外的
               查询结果中获取也将返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_object
type: function
doc:
<comment>Description:</comment>
  获取一行作为对象
  
  <strong>pg_fetch_object()</strong> 返回对象，该对象的属性对应于获取的行的字段名称。它可以选择实例化特定类的对象，并
  将参数传递给该类的构造方法。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。
  
  在速度方面，该函数与 <strong>pg_fetch_array()</strong> 相同，并且几乎与 <strong>pg_fetch_row()</strong> 一样快（差别不大）。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>            <class>PgSql\Result</class> 实例，由
                                   <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int|null</info>      <strong>$row</strong>               要获取的结果中的行号。行从 0 向上编号。如果省略或为 <info>null</info>，则获取
                                   下一行。
  <info>string</info>        <strong>$class</strong>             要实例化、设置属性并返回的类的名称。如果未指定，则返回 <class>stdClass</class>
                                   对象。
  <info>array</info>         <strong>$constructor_args</strong>  要传递给 <strong>$class</strong> 对象的构造方法的可选参数 <info>array</info>。

<comment>Return:</comment>
  <info>object|false</info>  结果中的每个字段名称都有在 <info>object</info> 中对应的属性。数据库 <return>NULL</return> 值作为 <info>null</info> 返回。
                
                如果 <strong>$row</strong> 超过集合中的行数、没有更多行或任何其他错误，则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_assoc()</strong>
   * <strong>pg_fetch_row()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_fetch_result
type: function
doc:
<comment>Description:</comment>
  从结果实例返回值
  
  <strong>pg_fetch_result()</strong> 返回 <class>PgSql\Result</class> 实例中特定行和字段（列）的值。
  
  此函数过去称为 <strong>pg_result()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$row</strong>     要获取的结果中的行号。行从 0 向上编号。如果省略，则获取下一行。
  <info>mixed</info>         <strong>$field</strong>   表示要获取的字段（列）名的 <info>string</info>，否则为表示要获取的字段编号的 <info>int</info>。字段从
                         0 向上编号。

<comment>Return:</comment>
  <info>string|false|null</info>  布尔值返回为 "t" 或 "f"。所有其它类型，包括数组，都以字符串形式返回，其格式与
                     psql 程序中的 PostgreSQL 默认方式相同。数据库 <return>NULL</return> 值作为 <info>null</info> 返回。
                     
                     如果 <strong>$row</strong> 超过集合中的行数或任何其他错误，则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_fetch_array()</strong>


id: pg_fetch_row
type: function
doc:
<comment>Description:</comment>
  提取一行作为枚举数组
  
  <strong>pg_fetch_row()</strong> 根据指定 <strong>$result</strong> 实例提取一行数据（记录）作为数组返回。每个得到的列依次存放在数组
  中，偏移量从 0 开始。
  
  此函数将 NULL 字段设置为 PHP <info>null</info> 值。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int|null</info>      <strong>$row</strong>     要获取的结果中的行号。行从 0 向上编号。如果省略或为 <info>null</info>，则获取下一行。
  <info>int</info>           <strong>$mode</strong>    An optional parameter that controls how the returned <info>array</info> is indexed.
                         <strong>$mode</strong> is a constant and can take the following values:
                         <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                         Using <info>PGSQL_NUM</info>, the function will return an array with numerical indices,
                         using <info>PGSQL_ASSOC</info> it will return only associative indices
                         while <info>PGSQL_BOTH</info> will return both numerical and associative indices.

<comment>Return:</comment>
  <info>array|false</info>  <info>array</info>，从 0 向上索引，每个值表示为一个 <info>string</info>。数据库 <return>NULL</return> 值作为 <info>null</info> 返回。
               
               返回的数组和提取的行相一致。如果没有更多行 <strong>$row</strong> 可提取，则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_fetch_array()</strong>
   * <strong>pg_fetch_object()</strong>
   * <strong>pg_fetch_result()</strong>


id: pg_field_is_null
type: function
doc:
<comment>Description:</comment>
  测试字段是否为 SQL NULL
  
  <strong>pg_field_is_null()</strong> 测试 <class>PgSql\Result</class> 实例中的字段是否为 SQL <return>NULL</return>。
  
  此函数过去称为 <strong>pg_fieldisnull()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$row</strong>     要获取的结果中的行号。行从 0 向上编号。如果省略或，则获取当前行。
  <info>mixed</info>         <strong>$field</strong>   作为 <info>int</info> 的字段编号（从 0 开始）或作为 <info>string</info> 的字段名。

<comment>Return:</comment>
  <info>int</info>  如果指定行中的字段为 SQL <return>NULL</return>，则返回 <return>1</return>，否则返回 <return>0</return>。如果该行超出范围或发生任何其他错误，则返
       回 <info>false</info>。


id: pg_field_name
type: function
doc:
<comment>Description:</comment>
  返回字段名
  
  <strong>pg_field_name()</strong> 返回在指定 <strong>$result</strong> 实例中占据 <strong>$field</strong> 字段的字段名。字段编号从 0 开始。
  
  此函数过去称为 <strong>pg_fieldname()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$field</strong>   字段编号，从 0 开始。

<comment>Return:</comment>
  <info>string</info>  字段名。

<comment>See Also:</comment>
   * <strong>pg_field_num()</strong>


id: pg_field_num
type: function
doc:
<comment>Description:</comment>
  返回名为 field 的字段编号
  
  <strong>pg_field_num()</strong> 将返回与指定 <strong>$result</strong> 实例中的 <strong>$field</strong> 对应的字段编号。
  
  本函数以前的名字为 <strong>pg_fieldnum()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>string</info>        <strong>$field</strong>   字段名。 指定的名称被视为 SQL 命令中的标识符，也就是说，除非用双引号引起
                         来，否则它将是大写（downcased）。

<comment>Return:</comment>
  <info>int</info>  字段编号（从 0 开始），错误时为 -1。

<comment>See Also:</comment>
   * <strong>pg_field_name()</strong>


id: pg_field_prtlen
type: function
doc:
<comment>Description:</comment>
  返回打印的长度
  
  <strong>pg_field_prtlen()</strong> 返回 PostgreSQL <strong>$result</strong> 中特定值的实际打印长度（字符数）。行编号从 0 开始。此函
  数将在出错时返回 <info>false</info>。
  
  <strong>$field_name_or_number</strong> 可以传递 <info>int</info> 或 <info>string</info>。如果它作为 <info>int</info> 传递，PHP 将其视为字段号，否则视为字
  段名。
  
  请参阅 <strong>pg_field_name()</strong> 页面中给出的示例。
  
  本函数以前的名字为 <strong>pg_fieldprtlen()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info></info>              <strong>$row</strong>     结果中的行号。行从 0 向上编号。如果省略，则获取当前行。

<comment>Return:</comment>
  <info>int</info>  字段打印的长度。

<comment>See Also:</comment>
   * <strong>pg_field_size()</strong>


id: pg_field_size
type: function
doc:
<comment>Description:</comment>
  返回指定字段的内部存储大小
    
  
  <strong>pg_field_size()</strong> 返回指定 PostgreSQL <strong>$result</strong> 中字段编号的内部存储大小（以字节为单位）。
  
  本函数以前的名字为 <strong>pg_fieldsize()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$field</strong>   字段编号，从 0 开始。

<comment>Return:</comment>
  <info>int</info>  内部字段存储大小（以字节为单位）。-1 表示可变长度字段。

<comment>See Also:</comment>
   * <strong>pg_field_prtlen()</strong>
   * <strong>pg_field_type()</strong>


id: pg_field_table
type: function
doc:
<comment>Description:</comment>
  Returns the name or oid of the tables field
  
  <strong>pg_field_table()</strong> returns the name of the table that field  belongs to, or the table's oid if
  <strong>$oid_only</strong> is <info>true</info>.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>    <class>PgSql\Result</class> 实例，由
                           <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$field</strong>     Field number, starting from 0.
  <info>bool</info>          <strong>$oid_only</strong>  By default the tables name that field belongs to is returned but if
                           <strong>$oid_only</strong> is set to <info>true</info>, then the oid will instead be returned.

<comment>Return:</comment>
  <info>string|int|false</info>  On success either the fields table name or oid,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>pg_field_name()</strong>
   * <strong>pg_field_type()</strong>


id: pg_field_type
type: function
doc:
<comment>Description:</comment>
  返回相应字段编号的类型名称
    
  
  <strong>pg_field_type()</strong> 返回字符串，其中包含指定 <strong>$result</strong> 实例中指定 <strong>$field</strong> 的基本类型名称。
  
  如果字段使用 PostgreSQL domain（而不是基本类型），则返回的是 domain 的底层类型名称，而不是 domain
  本身的名称。
  
  本函数以前的名字为 <strong>pg_fieldtype()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$field</strong>   字段编号，从 0 开始。

<comment>Return:</comment>
  <info>string</info>  包含字段类型的基本名称的 <info>string</info>。

<comment>See Also:</comment>
   * <strong>pg_field_prtlen()</strong>
   * <strong>pg_field_name()</strong>
   * <strong>pg_field_type_oid()</strong>


id: pg_field_type_oid
type: function
doc:
<comment>Description:</comment>
  Returns the type ID (OID) for the corresponding field number
    
  
  <strong>pg_field_type_oid()</strong> returns an integer containing the OID of the base type of the given <strong>$field</strong> in
  the given <strong>$result</strong> instance.
  
  You can get more information about the field type by querying PostgreSQL's <return>pg_type</return> system table
  using the OID obtained with this function. The PostgreSQL <strong>format_type()</strong> function will convert a
  type OID into an SQL standard type name.
  
  If the field uses a PostgreSQL domain (rather than a basic type), it is the OID of the domain's
  underlying type that is returned, rather than the OID of the domain itself.

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。
  <info>int</info>           <strong>$field</strong>   Field number, starting from 0.

<comment>Return:</comment>
  <info>string|int</info>  The OID of the field's base type.

<comment>See Also:</comment>
   * <strong>pg_field_type()</strong>
   * <strong>pg_field_prtlen()</strong>
   * <strong>pg_field_name()</strong>


id: pg_flush
type: function
doc:
<comment>Description:</comment>
  刷新链接中已处理的数据查询
  
  <strong>pg_flush()</strong> 刷新任何已经处理的等待发送到链接的数据查询。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>int|bool</info>  如果刷新成功或者没有数据等待刷新返回 <info>true</info> ， 如果返回 <return>0</return> 为部分刷新或者更多未被刷新,刷新
            失败为 <info>false</info>


id: pg_free_result
type: function
doc:
<comment>Description:</comment>
  释放查询结果占用的内存
  
  <strong>pg_free_result()</strong> 释放与指定 <class>PgSql\Result</class> 实例关联的内存和数据。
  
  仅当脚本执行期间的内存消耗成为问题时才需要调用此函数。否则，所有结果内存将在脚本结束时自动释放。
  
  本函数以前的名字为 <strong>pg_freeresult()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_query_params()</strong>
   * <strong>pg_execute()</strong>


id: pg_get_notify
type: function
doc:
<comment>Description:</comment>
  获取 SQL NOTIFY 消息
  
  <strong>pg_get_notify()</strong> 取得 SQL 命令 <return>NOTIFY</return> 生成的消息。要接收通知，必须发送 SQL 命令 <return>LISTEN</return>。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。
  <info>int</info>               <strong>$mode</strong>        An optional parameter that controls how the returned <info>array</info> is
                                 indexed.
                                 <strong>$mode</strong> is a constant and can take the following values:
                                 <info>PGSQL_ASSOC</info>, <info>PGSQL_NUM</info> and <info>PGSQL_BOTH</info>.
                                 Using <info>PGSQL_NUM</info>, the function will return an array with numerical
                                 indices,
                                 using <info>PGSQL_ASSOC</info> it will return only associative indices
                                 while <info>PGSQL_BOTH</info> will return both numerical and associative
                                 indices.

<comment>Return:</comment>
  <info>array|false</info>  包含 <return>NOTIFY</return> 消息名称和后端 PID 的 <info>array</info>。如果服务器支持，该数组还包含服务器版本和有效
               负载。否则，如果没有 <return>NOTIFY</return> 正在等待，则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_get_pid()</strong>


id: pg_get_pid
type: function
doc:
<comment>Description:</comment>
  获取后端的进程 ID
  
  <strong>pg_get_pid()</strong> 取得后端（数据库服务器进程）的 PID。PID 用来确定通过 <strong>pg_get_notify()</strong> 接收到的 <return>NOTIFY</return>
  消息，是否是其它进程发送的。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>int</info>  后端数据库进程 ID。

<comment>See Also:</comment>
   * <strong>pg_get_notify()</strong>


id: pg_get_result
type: function
doc:
<comment>Description:</comment>
  取得异步查询结果
    
  
  <strong>pg_get_result()</strong> 从由 <strong>pg_send_query()</strong>、<strong>pg_send_query_params()</strong> 或 <strong>pg_send_execute()</strong> 执行的异步查询中
  获取 <class>PgSql\Result</class> 实例。
  
  <strong>pg_send_query()</strong> 和其它异步查询函数可以向 PostgreSQL 服务器发送多个查询，而 <strong>pg_get_result()</strong> 则用来
  逐个获取查询结果。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。

<comment>Return:</comment>
  <info>PgSql\Result|false</info>  <class>PgSql\Result</class> 实例，或者没有更多查询结果，则返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_send_query()</strong>


id: pg_host
type: function
doc:
<comment>Description:</comment>
  返回和某连接关联的主机名
    
  
  <strong>pg_host()</strong> 返回指定的 PostgreSQL <strong>$connection</strong> 实例所连接到的主机名称。

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  <info>string</info>, 包含 <strong>$connection</strong> 的主机名，或错误时为空字符串。

<comment>See Also:</comment>
   * <strong>pg_connect()</strong>
   * <strong>pg_pconnect()</strong>


id: pg_insert
type: function
doc:
<comment>Description:</comment>
  将数组插入到表中
    
  
  <strong>pg_insert()</strong> 将 <strong>$values</strong> 中的值插入到由 <strong>$table_name</strong> 指定的表中。
  
  如果指定 <strong>$flags</strong>，则 <strong>pg_convert()</strong> 使用指定 flag 应用于 <strong>$values</strong>。
  
  默认情况下 <strong>pg_insert()</strong> 传递原始值。值必须转义或必须在 <strong>$flags</strong> 中指定 <info>PGSQL_DML_ESCAPE</info> flag。
  <info>PGSQL_DML_ESCAPE</info> 引用并转义参数/标识符。因此，表/列名称变得区分大小写。
  
  注意转义和预处理查询都不能保护 LIKE 查询、JSON、Array、Regex 等，这些参数要根据上下文来处理。即转
  义/验证值。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。
  <info>string</info>            <strong>$table_name</strong>  要插入记录的表名。表 <strong>$table_name</strong> 中的列必须至少要有 <return>values</return> 中的单元
                                 那么多。
  <info>array</info>             <strong>$values</strong>      <info>array</info>，其键是表 <strong>$table_name</strong> 中的字段名称，其值是要插入的匹配行。
  <info>int</info>               <strong>$flags</strong>       任意数量的 <info>PGSQL_CONV_OPTS</info>、<info>PGSQL_DML_NO_CONV</info>、<info>PGSQL_DML_ESCAPE</info>、
                                 <info>PGSQL_DML_EXEC</info>、<info>PGSQL_DML_ASYNC</info> 或 <info>PGSQL_DML_STRING</info> 的组合。当
                                 <info>PGSQL_DML_STRING</info> 是 <strong>$flags</strong> 的一部分，然后将返回查询字符串。当设置了
                                 <info>PGSQL_DML_NO_CONV</info> 或 <info>PGSQL_DML_ESCAPE</info> 时，不会在内部调用
                                 <strong>pg_convert()</strong>。

<comment>Return:</comment>
  <info>PgSql\Result|string|bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。如果通过 <strong>$flags</strong> 传递
                            <info>PGSQL_DML_STRING</info>，成功时返回 <info>string</info>。

<comment>See Also:</comment>
   * <strong>pg_convert()</strong>


id: pg_last_error
type: function
doc:
<comment>Description:</comment>
  得到某连接的最后一条错误信息
  
  <strong>pg_last_error()</strong> 返回指定 <strong>$connection</strong> 的最后一条错误信息。
  
  错误信息可能会被调用的 PostgreSQL(libpq) 内部函数覆盖。如果 PostgreSQL 的内部模块函数产生了多个错
  误，则可能不能返回适当的错误信息。
  
  使用 <strong>pg_result_error()</strong>、<strong>pg_result_error_field()</strong>、<strong>pg_result_status()</strong> 和 <strong>pg_connection_status()</strong> 用于
  更好的错误处理。
  
  本函数以前的名字为 <strong>pg_errormessage()</strong>。

<comment>Param:</comment>
  <info>PgSql\Connection|null</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                      When <strong>$connection</strong> is <info>null</info>, the default connection is used.
                                      The default connection is the last connection made by
                                      <strong>pg_connect()</strong>
                                      or <strong>pg_pconnect()</strong>.
                                      As of PHP 8.1.0, using the default connection is deprecated.
                                      
                                      As of PHP 8.1.0, using the default connection is deprecated.

<comment>Return:</comment>
  <info>string</info>  <info>string</info>，包含指定 <strong>$connection</strong> 的最后一条错误消息。

<comment>See Also:</comment>
   * <strong>pg_result_error()</strong>
   * <strong>pg_result_error_field()</strong>


id: pg_last_notice
type: function
doc:
<comment>Description:</comment>
  返回 PostgreSQL 服务器最新一条公告信息
    
  
  <strong>pg_last_notice()</strong> 返回由 <strong>$connection</strong> 指定的 PostgreSQL 服务器最新的一条 notice 信息。PostgreSQL 服
  务器在某些情况下会发送 notice 信息，例如在表里创建 <return>SERIAL</return> 列。
  
  使用 <strong>pg_last_notice()</strong>，只要检查 notice 是否和该事务有关，就可以避免提交无用的查询。
  
  可以通过在 php.ini 中把 <return>pgsql.ignore_notice</return> 置为 1 来使 notice 信息追踪成为可选项。
  
  可以通过在 php.ini 中把 <return>pgsql.log_notice</return> 置为 0 来使 notice 信息日志成为可选项。 除非
  <return>pgsql.ignore_notice</return> 为 0，否则 notice 信息不能被日志记录。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  <class>PgSql\Connection</class> 实例。
  <info>int</info>               <strong>$mode</strong>        <info>PGSQL_NOTICE_LAST</info>（返回最后的 notice）、<info>PGSQL_NOTICE_ALL</info>（返回所有
                                 notice）或 <info>PGSQL_NOTICE_CLEAR</info>（清除 notice）之一。

<comment>Return:</comment>
  <info>array|string|bool</info>  在指定 <strong>$connection</strong> 使用 <info>PGSQL_NOTICE_LAST</info>，返回包含最后一条 notice 的 <info>string</info>，
                     使用 <info>PGSQL_NOTICE_ALL</info> 时为 <info>array</info>，使用 <info>PGSQL_NOTICE_CLEAR</info> 时为 <info>bool</info>。

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_last_error()</strong>


id: pg_last_oid
type: function
doc:
<comment>Description:</comment>
  返回上一条记录的 oid
  
  <strong>pg_last_oid()</strong> 用于检索分配给插入行的 OID。
  
  从 PostgreSQL 7.2 开始 OID 字段成为可选项，在 PostgreSQL 8.1 中默认不存在。如果表中没有定义 OID 字
  段，程序员必须用 <strong>pg_result_status()</strong> 检查记录是否成功插入。
  
  要在插入的行中获取 <return>SERIAL</return> 字段的值，必须使用 PostgreSQL <return>CURRVAL</return> 函数，命名需要最后一个值的序列。如
  果序列名称未知，则需要 <return>pg_get_serial_sequence</return> PostgreSQL 8.0 函数。
  
  PostgreSQL 8.1 有一个函数 <return>LASTVAL</return>，它返回会话中最近使用的序列的值。这避免了对序列、表或列的命名需
  求。
  
  本函数以前的名字为 <strong>pg_getlastoid()</strong>。

<comment>Param:</comment>
  <info>PgSql\Result</info>  <strong>$result</strong>  <class>PgSql\Result</class> 实例，由
                         <strong>pg_query()</strong>、<strong>pg_query_params()</strong> 或者 <strong>pg_execute()</strong>（等）返回。

<comment>Return:</comment>
  <info>string|int|false</info>  <info>int</info> 或 <info>string</info>，包含分配给指定 <strong>$connection</strong> 中最近插入的行的 OID，如果出错或没有可
                    用的 OID，则为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_query()</strong>
   * <strong>pg_result_status()</strong>


id: pg_lo_close
type: function
doc:
<comment>Description:</comment>
  关闭大对象
  
  <strong>pg_lo_close()</strong> 关闭大对象。
  
  要使用大对象接口，必须将其封装在事务块中。
  
  本函数以前的名字为 <strong>pg_loclose()</strong>。

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>  通过 <strong>pg_lo_open()</strong> 返回的 <class>PgSql\Lob</class> 实例。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_open()</strong>
   * <strong>pg_lo_create()</strong>
   * <strong>pg_lo_import()</strong>


id: pg_lo_create
type: function
doc:
<comment>Description:</comment>
  新建大对象
  
  <strong>pg_lo_create()</strong> 新建大对象并返回大对象的 oid。不支持 PostgreSQL  访问模式 <info>INV_READ</info>、<info>INV_WRITE</info> 和
  <info>INV_ARCHIVE</info>，创建的对象始终以读写方式访问。<info>INV_ARCHIVE</info> 已经从 PostgreSQL（6.3 及以上版本）中移除。
  
  要使用大对象接口，必须将其封装在一个事务块中。
  
  不使用大对象接口（没有访问控制，使用起来很麻烦），试试 PostgreSQL 的 bytea 列类型和
  <strong>pg_escape_bytea()</strong>。
  
  本函数以前的名字为 <strong>pg_locreate()</strong>。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>mixed</info>             <strong>$object_id</strong>   如果指定 <strong>$object_id</strong>，该函数将尝试使用此 id 创建大对象，否则服务器将
                                 分配一个空闲对象 id。该参数依赖于 PostgreSQL 8.1 中首次出现的功能。

<comment>Return:</comment>
  <info>int</info>  大对象 OID， 或者在失败时返回 <info>false</info>。


id: pg_lo_export
type: function
doc:
<comment>Description:</comment>
  将大型对象导出到文件
  
  <strong>pg_lo_export()</strong> 在 PostgreSQL 数据库中获取一个大对象并将其内容保存到本地文件系统上的文件中。
  
  要使用大型对象（lo）接口，需要将其放置在事务块中。
  
  本函数以前的名字为 <strong>pg_loexport()</strong>。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>               <strong>$oid</strong>         要导出的数据库里的大型对象的 OID。
  <info>string</info>            <strong>$pathname</strong>    要导出的数据库里的大型对象的文件在客户端上完整路径和文件名。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_import()</strong>


id: pg_lo_import
type: function
doc:
<comment>Description:</comment>
  将文件导入为大型对象
  
  <strong>pg_lo_import()</strong> 使用文件系统上的文件作为其数据源从而在数据库中创建新的大对象。
  
  要使用大型对象接口，需要将其放置在事务块中。
  
  本函数以前的名字为 <strong>pg_loimport()</strong>。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>string</info>            <strong>$pathname</strong>    在客户端文件系统上读取大对象数据的文件的完整路径和文件名。
  <info>mixed</info>             <strong>$object_id</strong>   如果指定了 <strong>$object_id</strong>，该函数将使用此 id 尝试创建大对象，否则服务器
                                 将分配空闲对象 id。该参数依赖于 PostgreSQL 8.1 中首次出现的功能。

<comment>Return:</comment>
  <info>int</info>  新创建大对象的 OID， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_export()</strong>
   * <strong>pg_lo_open()</strong>


id: pg_lo_open
type: function
doc:
<comment>Description:</comment>
  打开大对象
  
  <strong>pg_lo_open()</strong> 打开数据库中的大对象并返回 <class>PgSql\Lob</class> 实例，以便对其进行操作。
  
  在关闭 <class>PgSql\Lob</class> 实例之前不要关闭数据库连接。
  
  要使用大对象接口，必须将其封装在一个事务块中。
  
  本函数以前的名字为 <strong>pg_loopen()</strong>。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>               <strong>$oid</strong>         数据库中大对象的 OID。
  <info>string</info>            <strong>$mode</strong>        可以是只读的“r”、只写的“w”或读写的“rw”。

<comment>Return:</comment>
  <info>PgSql\Lob|false</info>  <class>PgSql\Lob</class> 实例， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_close()</strong>
   * <strong>pg_lo_create()</strong>


id: pg_lo_read
type: function
doc:
<comment>Description:</comment>
  读取大对象
  
  <strong>pg_lo_read()</strong> 从大对象中读取最多 <strong>$length</strong> 字节的数据并以 <info>string</info> 返回。
  
  要使用大对象接口，必须将其封装在一个事务块中。
  
  本函数以前的名字为 <strong>pg_loread()</strong>。

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>     通过 <strong>pg_lo_open()</strong> 返回的 <class>PgSql\Lob</class> 实例。
  <info>int</info>        <strong>$length</strong>  可选的要返回的最大字节数。

<comment>Return:</comment>
  <info>string|false</info>  包含来自大对象的 <strong>$length</strong> 字节的 <info>string</info>，或错误时为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_read_all()</strong>


id: pg_lo_read_all
type: function
doc:
<comment>Description:</comment>
  读取整个大对象并直接发送到浏览器
    
  
  <strong>pg_lo_read_all()</strong> 读取大对象并在发送完所有待发的 header 之后将其直接发送给浏览器。主要用于发送图片
  或声音等二进制数据。
  
  要使用大对象接口，必须将其封装在一个事务块中。
  
  本函数以前的名字为 <strong>pg_loreadall()</strong>。

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>  通过 <strong>pg_lo_open()</strong> 返回的 <class>PgSql\Lob</class> 实例。

<comment>Return:</comment>
  <info>int</info>  读取的字节数。

<comment>See Also:</comment>
   * <strong>pg_lo_read()</strong>


id: pg_lo_seek
type: function
doc:
<comment>Description:</comment>
  在大对象中寻找位置
    
  
  <strong>pg_lo_seek()</strong> 在 <class>PgSql\Lob</class> 实例中寻找位置。
  
  要使用大对象接口，必须将其封装在一个事务块中。

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>     通过 <strong>pg_lo_open()</strong> 返回的 <class>PgSql\Lob</class> 实例。
  <info>int</info>        <strong>$offset</strong>  要寻找的字节数。
  <info>int</info>        <strong>$whence</strong>  常量 <info>PGSQL_SEEK_SET</info>（从对象开始处寻找）、 <info>PGSQL_SEEK_CUR</info>（从当前位置寻找） 或
                      <info>PGSQL_SEEK_END</info>（从对象结尾处寻找）之一。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_tell()</strong>


id: pg_lo_tell
type: function
doc:
<comment>Description:</comment>
  返回当前大型对象的指针位置
    
  
  <strong>pg_lo_tell()</strong> 返回当前大对象的指针位置（从头开始的偏移量）。
  
  要使用大对象接口，必须将其封装在一个事务块中。

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>  通过 <strong>pg_lo_open()</strong> 返回的 <class>PgSql\Lob</class> 实例。

<comment>Return:</comment>
  <info>int</info>  当前查找距离大对象开头的偏移量（字节数）。如果有错误，返回值为负。

<comment>See Also:</comment>
   * <strong>pg_lo_seek()</strong>


id: pg_lo_truncate
type: function
doc:
<comment>Description:</comment>
  Truncates a large object
    
  
  <strong>pg_lo_truncate()</strong> truncates an <class>PgSql\Lob</class> instance.
  
  To use the large object interface, it is necessary to enclose it within a transaction block.

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>   通过 <strong>pg_lo_open()</strong> 返回的 <class>PgSql\Lob</class> 实例。
  <info>int</info>        <strong>$size</strong>  The number of bytes to truncate.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_tell()</strong>


id: pg_lo_unlink
type: function
doc:
<comment>Description:</comment>
  删除一个大型对象
  
  <strong>pg_lo_unlink()</strong> 删除由 <strong>$oid</strong> 指定的大型对象。成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
  
  要使用大型对象（lo）接口，需要将其放置在事务块中。
  
  本函数以前的名字为 <strong>pg_lounlink()</strong>。

<comment>Param:</comment>
  <info>PgSql\Connection</info>  <strong>$connection</strong>  An <class>PgSql\Connection</class> instance.
                                 When <strong>$connection</strong> is unspecified, the default connection is used.
                                 The default connection is the last connection made by <strong>pg_connect()</strong>
                                 or <strong>pg_pconnect()</strong>.
                                 As of PHP 8.1.0, using the default connection is deprecated.
                                 
                                 As of PHP 8.1.0, using the default connection is deprecated.
  <info>int</info>               <strong>$oid</strong>         数据库中大对象的 OID。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_create()</strong>
   * <strong>pg_lo_import()</strong>


id: pg_lo_write
type: function
doc:
<comment>Description:</comment>
  向大对象写入数据
  
  <strong>pg_lo_write()</strong> 在大对象的当前位置写入数据。
  
  要使用大对象接口，必须将其封装在一个事务块中。
  
  本函数以前的名字为 <strong>pg_lowrite()</strong>。

<comment>Param:</comment>
  <info>PgSql\Lob</info>  <strong>$lob</strong>     通过 <strong>pg_lo_open()</strong> 返回的 <class>PgSql\Lob</class> 实例。
  <info>string</info>     <strong>$data</strong>    写入到大对象中的数据。如果 <strong>$length</strong> 是 <info>int</info> 并且少于 <strong>$data</strong> 的长度，仅会写入
                      <strong>$length</strong> 个字节。
  <info>int|null</info>   <strong>$length</strong>  可选的最大写入字节数。必须大于零且不大于 <strong>$data</strong> 的长度。默认为 <strong>$data</strong> 的长度。

<comment>Return:</comment>
  <info>int|false</info>  写入到大对象的字节数，或出错时为 <info>false</info>。

<comment>See Also:</comment>
   * <strong>pg_lo_create()</strong>
   * <strong>pg_lo_open()</strong>


