<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >所支持的套接字传输器(Socket Transports)列表</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="Appendices" HREF="appendices.html"><LINK REL="PREVIOUS" TITLE="加密过滤器" HREF="filters.encryption.html"><LINK REL="NEXT" TITLE="Unix 领域:Unix 和 UDG" HREF="transports.unix.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="appendix" 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="filters.encryption.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="transports.unix.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="appendix" ><H1 ><A NAME="transports" >附录 P. 所支持的套接字传输器(Socket Transports)列表</A ></H1 ><DIV CLASS="TOC" ><DL ><DT ><B >目录</B ></DT ><DT ><A HREF="transports.html#transports.inet" >Internet 领域:TCP,UDP,SSL 和 TLS</A ></DT ><DT ><A HREF="transports.unix.html" >Unix 领域:Unix 和 UDG</A ></DT ></DL ></DIV ><P > 以下是 PHP 内置用于基于流的套接字函数例如 <A HREF="function.fsockopen.html" ><B CLASS="function" >fsockopen()</B ></A > 和 <A HREF="function.stream-socket-client.html" ><B CLASS="function" >stream_socket_client()</B ></A > 的各种 URL 风格的套接字传输器。这些传输器<SPAN CLASS="emphasis" ><I CLASS="emphasis" >不适用</I ></SPAN >于 <A HREF="ref.sockets.html" >Sockets 扩展库</A >。 </P ><P > 要得到自己的 PHP 版本中所安装的传输器列表,使用 <A HREF="function.stream-get-transports.html" ><B CLASS="function" >stream_get_transports()</B ></A >。 </P ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="transports.inet" >Internet 领域:TCP,UDP,SSL 和 TLS</A ></H1 ><P > PHP 3,PHP 4,PHP 5。 <TT CLASS="literal" >ssl://</TT > & <TT CLASS="literal" >tls://</TT > 自 PHP 4.3 起可用。 </P ><P > <TT CLASS="literal" >sslv2://</TT > & <TT CLASS="literal" >sslv3://</TT > 自 PHP 5.0.2 起可用。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 如果没有指定传输器,则假定为 <TT CLASS="literal" >tcp://</TT >。 </P ></BLOCKQUOTE ></DIV ><P ></P ><UL ><LI ><P ><TT CLASS="literal" >127.0.0.1</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >fe80::1</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >www.example.com</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >tcp://127.0.0.1</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >tcp://fe80::1</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >tcp://www.example.com</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >udp://www.example.com</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >ssl://www.example.com</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >sslv2://www.example.com</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >sslv3://www.example.com</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >tls://www.example.com</TT ></P ></LI ></UL ><P > Internet 领域套接字在目标地址中还期望有一个端口号。在 <A HREF="function.fsockopen.html" ><B CLASS="function" >fsockopen()</B ></A > 中在第二个参数中指定,这样就不会影响传输器的 URL。然而在 <A HREF="function.stream-socket-client.html" ><B CLASS="function" >stream_socket_client()</B ></A > 和相关的函数中是用传统的 URL,端口号在传输器 URL 后面以冒号分隔而指定。 </P ><P ></P ><UL ><LI ><P ><TT CLASS="literal" >tcp://127.0.0.1:80</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >tcp://[fe80::1]:80</TT ></P ></LI ><LI ><P ><TT CLASS="literal" >tcp://www.example.com:80</TT ></P ></LI ></UL ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >带端口号的 IPv6 数字地址: </B > 在上面的第二个例子中,IPv4 和主机名的例子只加了一个冒号和端口号,但 IPv6 的地址被放在方括号中:<TT CLASS="literal" >[fe80::1]</TT >。这是为了将 IPv6 地址中的冒号和用来分隔端口号的冒号区别开来。 </P ></BLOCKQUOTE ></DIV ><P > <TT CLASS="literal" >ssl://</TT > 和 <TT CLASS="literal" >tls://</TT > 传输器(仅在 openssl 支持已编译入 PHP 后可用)是 <TT CLASS="literal" >tcp://</TT > 传输器加入 SSL 加密后的扩展。在 PHP 4.3.0 中 OpenSSL 支持必须被静态编译入 PHP,在 PHP 5.0.0 中可以编译为模块或者静态的。 </P ><P > <TT CLASS="literal" >ssl://</TT > 将根据远程服务器的兼容性和参数设置尝试与之建立 SSL V2 或 SSL V3 链接 <TT CLASS="literal" >sslv2://</TT > 和 <TT CLASS="literal" >sslv3://</TT > 将明确的选择 SSL V2 或 SSL V3 协议进行连接。 </P ><P > <DIV CLASS="table" ><A NAME="AEN303779" ></A ><P ><B >表 P-1. <TT CLASS="literal" >ssl://</TT > 和 <TT CLASS="literal" >tls://</TT > 传输器的上下文选项(自 PHP 4.3.2 起) </B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><THEAD ><TR ><TH >名称</TH ><TH >用法</TH ><TH >默认值</TH ></TR ></THEAD ><TBODY ><TR ><TD ><TT CLASS="literal" >verify_peer</TT ></TD ><TD > <TT CLASS="constant" ><B >TRUE</B ></TT > 或 <TT CLASS="constant" ><B >FALSE</B ></TT >。用于 SSL 证书请求验证。 </TD ><TD ><TT CLASS="constant" ><B >FALSE</B ></TT ></TD ></TR ><TR ><TD ><TT CLASS="literal" >allow_self_signed</TT ></TD ><TD > <TT CLASS="constant" ><B >TRUE</B ></TT > 或 <TT CLASS="constant" ><B >FALSE</B ></TT >。允许自签名的证书。 </TD ><TD ><TT CLASS="constant" ><B >FALSE</B ></TT ></TD ></TR ><TR ><TD ><TT CLASS="literal" >cafile</TT ></TD ><TD > 本地文件系统中证书授权机构文件的位置,应和 <TT CLASS="literal" >verify_peer</TT > 上下文选项一起使用来认证远端的身份。 </TD ><TD > </TD ></TR ><TR ><TD ><TT CLASS="literal" >capath</TT ></TD ><TD > 如果没有指定 <TT CLASS="literal" >cafile</TT > 或者如果该处没找到证书,则在 <TT CLASS="literal" >capath</TT > 指定的目录中搜索相配的证书。<TT CLASS="literal" >capath</TT > 必须是一个正确的被散列化的证书目录。 </TD ><TD > </TD ></TR ><TR ><TD ><TT CLASS="literal" >local_cert</TT ></TD ><TD > 文件系统中本地证书文件的路径。必须是一个用 PEM 编码并包含你的证书和私人密钥的文件。可以选择包括发行者的证书链。 </TD ><TD > </TD ></TR ><TR ><TD ><TT CLASS="literal" >passphrase</TT ></TD ><TD > 你的 <TT CLASS="literal" >local_cert</TT > 文件编码的 passphrase。 </TD ><TD > </TD ></TR ><TR ><TD ><TT CLASS="literal" >CN_match</TT ></TD ><TD > 所期待的 Common Name。PHP 能进行有限的通配符匹配。如果 Common Name 与此不匹配,连接尝试会失败。 </TD ><TD > </TD ></TR ></TBODY ></TABLE ></DIV > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 因为 <TT CLASS="literal" >ssl://</TT > 是 <A HREF="wrappers.http.html" ><TT CLASS="literal" >https://</TT ></A > 和 <A HREF="wrappers.ftp.html" ><TT CLASS="literal" >ftps://</TT ></A > 封装协议的底层传输器,适用于 <TT CLASS="literal" >ssl://</TT > 的任何上下文选项也适用于 <TT CLASS="literal" >https://</TT > 和 <TT CLASS="literal" >ftps://</TT >。 </P ></BLOCKQUOTE ></DIV ></DIV ></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="filters.encryption.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="transports.unix.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >加密过滤器</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="appendices.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Unix 领域:Unix 和 UDG</TD ></TR ></TABLE ></DIV ></BODY ></HTML >