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 ]] )
启用或禁用流上的加密。
一旦建立了加密设置,就可以通过传递TRUE
或FALSE
在enable
参数中动态地打开和关闭加密。
参数
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.0 | crypto_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 →