PHP
流 | Streams

stream_socket_enable_crypto

stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_enable_crypto - 在已连接的套接字上打开/关闭加密

描述

mixed stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] )

启用或禁用流上的加密。

一旦建立了加密设置,就可以通过传递TRUEFALSEenable参数中动态地打开和关闭加密。

参数

stream

流资源。

enable

启用/禁用流上的加密。

crypto_type

在流上设置加密。有效的方法是

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT

  • STREAM_CRYPTO_METHOD_ANY_CLIENT

  • STREAM_CRYPTO_METHOD_TLS_CLIENT

  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT

  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT

  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv2_SERVER

  • STREAM_CRYPTO_METHOD_SSLv3_SERVER

  • STREAM_CRYPTO_METHOD_SSLv23_SERVER

  • STREAM_CRYPTO_METHOD_ANY_SERVER

  • STREAM_CRYPTO_METHOD_TLS_SERVER

  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER

  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER

  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

如果省略,crypto_type则将使用流的SSL上下文中的上下文选项。

session_stream

使用来自设置的流播种session_stream

返回值

如果协商失败返回FALSE,成功返回TRUE;如果没有足够的数据,则返回0,并且应该再次尝试(仅适用于非阻塞套接字)。

Changelog

版本描述
5.6.0介绍STREAM_CRYPTO_METHOD_ANY_CLIENT,STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT,STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT,STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,STREAM_CRYPTO_METHOD_ANY_SERVER,STREAM_CRYPTO_METHOD_TLSv1_0_SERVER,STREAM_CRYPTO_METHOD_TLSv1_1_SERVER,STREAM_CRYPTO_METHOD_TLSv1_2_SERVER。
5.6.0crypto_type现在是可选的。

示例

示例#1 stream_socket_enable_crypto()示例

<?php $fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30 if (!$fp) {     die("Unable to connect: $errstr ($errno)" } /* Turn on encryption for login phase */ stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT fwrite($fp, "USER god\r\n" fwrite($fp, "PASS secret\r\n" /* Turn off encryption for the rest */ stream_socket_enable_crypto($fp, false while ($motd = fgets($fp)) {     echo $motd; } fclose($fp ?>

上面的例子会输出类似于:

另请参阅

← stream_socket_client

stream_socket_get_name →