支持的套接字传输器(Socket Transports)列表

PHP所支持的套接字传输器(Socket Transports)列表

 


以下是 PHP 内置用于基于流的套接字函数例如 fsockopen()
stream_socket_client()
的各种 URL 风格的套接字传输器。这些传输器不适用
于 Sockets 扩展库。

要得到自己的 PHP 版本中所安装的传输器列表,使用 stream_get_transports()

Internet 领域:TCP,UDP,SSL 和 TLS

PHP 3,PHP 4,PHP 5。 ssl://
& tls://
自 PHP 4.3 起可用。

sslv2://
& sslv3://
自 PHP 5.0.2 起可用。

注意:

如果没有指定传输器,则假定为 tcp://


  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Internet 领域套接字在目标地址中还期望有一个端口号。在 fsockopen()
中在第二个参数中指定,这样就不会影响传输器的 URL。然而在 stream_socket_client()
和相关的函数中是用传统的 URL,端口号在传输器 URL 后面以冒号分隔而指定。

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

带端口号的 IPv6 数字地址:

在上面的第二个例子中,IPv4 和主机名的例子只加了一个冒号和端口号,但 IPv6 的地址被放在方括号中:[fe80::1]
。这是为了将 IPv6 地址中的冒号和用来分隔端口号的冒号区别开来。

ssl://
tls://
传输器(仅在 openssl 支持已编译入 PHP 后可用)是 tcp://
传输器加入 SSL 加密后的扩展。在 PHP 4.3.0 中 OpenSSL 支持必须被静态编译入 PHP,在 PHP 5.0.0 中可以编译为模块或者静态的。

ssl://
将根据远程服务器的兼容性和参数设置尝试与之建立 SSL V2 或 SSL V3 链接 sslv2://
sslv3://
将明确的选择 SSL V2 或 SSL V3 协议进行连接。

Unix 领域:Unix 和 UDG

unix://
自 PHP 3 起可用,udg://
自 PHP 5 起可用。

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix://
提供了在 Unix 域中对套接字流连接的访问。udg://
提供了替代的传输器以用户数据报协议(UDP)来访问 Unix 域套接字。

Unix 域套接字(UNIX Domain Socket),和 Internet Domain Socket 不同,不期望端口号。在 fsockopen()
portno
参数应被设为 0。

 

表O.1. ssl:// 和 tls:// 传输器的上下文选项(自 PHP 4.3.2 起)

名称用法默认值
verify_peerTRUE
FALSE
。用于 SSL 证书请求验证。
FALSE
allow_self_signedTRUE
FALSE
。允许自签名的证书。
FALSE
cafile本地文件系统中证书授权机构文件的位置,应和 verify_peer
上下文选项一起使用来认证远端的身份。
 
capath如果没有指定 cafile
或者如果该处没找到证书,则在 capath
指定的目录中搜索相配的证书。capath
必须是一个正确的被散列化的证书目录。
 
local_cert文件系统中本地证书文件的路径。必须是一个用 PEM 编码并包含你的证书和私人密钥的文件。可以选择包括发行者的证书链。 
passphrase你的 local_cert
文件编码的 passphrase。
 
CN_match所期待的 Common Name。PHP 能进行有限的通配符匹配。如果 Common Name 与此不匹配,连接尝试会失败。 

注意:

因为 ssl://
https://
ftps://
封装协议的底层传输器,适用于 ssl://
的任何上下文选项也适用于 https://
ftps://