附錄 O. 所支援的套接字傳輸器(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 協定進行連線。

表格 O-1. ssl://tls:// 傳輸器的上下文選項(自 PHP 4.3.2 起)

名稱用法預設值
verify_peer TRUEFALSE。用於 SSL 證書請求驗證。 FALSE
allow_self_signed TRUEFALSE。容許自簽名的證書。 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://