Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 05cd670d8a02b2b4a0ffb1756f2e8308 > files > 55

php-manual-zh-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>连接处理</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PHP 手册"
HREF="index.html"><LINK
REL="UP"
TITLE="特点"
HREF="features.html"><LINK
REL="PREVIOUS"
TITLE="使用远程文件"
HREF="features.remote-files.html"><LINK
REL="NEXT"
TITLE="数据库永久连接"
HREF="features.persistent-connections.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PHP 手册</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="features.remote-files.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="features.persistent-connections.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="features.connection-handling"
>章 40. 连接处理</A
></H1
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
   以下内容对 PHP 3.0.7 及更高版本适用。
  </P
></BLOCKQUOTE
></DIV
><P
>&#13;  在 PHP 内部,系统维护着连接状态,其状态有三种可能的情况:
  <P
></P
><UL
><LI
><P
>0 - NORMAL(正常)</P
></LI
><LI
><P
>1 - ABORTED(异常退出)</P
></LI
><LI
><P
>2 - TIMEOUT(超时)</P
></LI
></UL
>
 </P
><P
>&#13;  当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED
  状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP
  按钮导致的。当连接时间超过 PHP 的时限(请参阅
  <A
HREF="function.set-time-limit.html"
><B
CLASS="function"
>set_time_limit()</B
></A
> 函数)时,TIMEOUT 状态的标记将被打开。
 </P
><P
>&#13;  可以决定脚本是否需要在客户端中断连接时退出。有时候让脚本完整地运行会带来很多方便,即使没有远程浏览器接受脚本的输出。默认的情况是当远程客户端连接中断时脚本将会退出。该处理过程可由
  <TT
CLASS="filename"
>php.ini</TT
> 的 ignore_user_abort 或由 Apache .conf
  设置中对应的“php_value ignore_user_abort”以及
  <A
HREF="function.ignore-user-abort.html"
><B
CLASS="function"
>ignore_user_abort()</B
></A
> 函数来控制。如果没有告诉 PHP
  忽略用户的中断,脚本将会被中断,除非通过
  <A
HREF="function.register-shutdown-function.html"
><B
CLASS="function"
>register_shutdown_function()</B
></A
>
  设置了关闭触发函数。通过该关闭触发函数,当远程用户点击 STOP
  按钮后,脚本再次尝试输出数据时,PHP 将会检测到连接已被中断,并调用关闭触发函数。
 </P
><P
>&#13;  脚本也有可能被内置的脚本计时器中断。默认的超时限制为 30
  秒。这个值可以通过设置 <TT
CLASS="filename"
>php.ini</TT
> 的
  <CODE
CLASS="option"
>max_execution_time</CODE
> 或 Apache .conf
  设置中对应的“<TT
CLASS="literal"
>php_value max_execution_time</TT
>”参数或者
  <A
HREF="function.set-time-limit.html"
><B
CLASS="function"
>set_time_limit()</B
></A
>
  函数来更改。当计数器超时的时候,脚本将会类似于以上连接中断的情况退出,先前被注册过的关闭触发函数也将在这时被执行。在该关闭触发函数中,可以通过调用
  <A
HREF="function.connection-status.html"
><B
CLASS="function"
>connection_status()</B
></A
>
  函数来检查超时是否导致关闭触发函数被调用。如果超时导致了关闭触发函数的调用,该函数将返回 2。
 </P
><P
>&#13;  需要注意的一点是 ABORTED 和 TIMEOUT
  状态可以同时有效。这在告诉 PHP 忽略用户的退出操作时是可能的。PHP
  将仍然注意用户已经中断了连接但脚本仍然在运行的情况。如果到了运行的时间限制,脚本将被退出,设置过的关闭触发函数也将被执行。在这时会发现函数
  <A
HREF="function.connection-status.html"
><B
CLASS="function"
>connection_status()</B
></A
> 返回 3。
 </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="features.remote-files.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>起始页</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="features.persistent-connections.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>使用远程文件</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="features.html"
ACCESSKEY="U"
>上一级</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>数据库永久连接</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>