stream_socket_enable_crypto
在已連接的套接字上打開/關閉加密
函數名稱:stream_socket_enable_crypto()
適用版本:PHP 5 >= 5.1.0, PHP 7
函數描述:stream_socket_enable_crypto()函數用於在一個已經建立的socket連接上啟用或禁用加密。
語法:bool stream_socket_enable_crypto ( resource $stream , bool $enable , int $crypto_type [, resource $session_stream ] )
參數:
返回值:如果成功啟用或禁用加密,則返回true;否則返回false。
示例:
// 创建一个socket连接$socket = stream_socket_client('tcp://www.example.com:443', $errno, $errstr, 30); // 启用加密if (stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { echo "加密已成功启用!\n"; } else { echo "无法启用加密!\n"; } // 发送加密的数据fwrite($socket, "Hello, encrypted world!"); // 关闭加密stream_socket_enable_crypto($socket, false); // 发送非加密的数据fwrite($socket, "Hello, world!"); // 关闭socket连接fclose($socket);
在上面的示例中,我們首先使用stream_socket_client()函數創建一個與www.example.com的443端口的TCP連接。然後,我們使用stream_socket_enable_crypto()函數啟用加密,並指定加密類型為TLS客戶端加密。如果加密成功啟用,則輸出"加密已成功啟用!",否則輸出"無法啟用加密!"。接下來,我們使用fwrite()函數發送加密的數據。然後,我們使用stream_socket_enable_crypto()函數禁用加密。最後,我們使用fwrite()函數發送非加密的數據,並關閉socket連接。