温馨提示×

PHP stream_context_create如何处理超时

PHP
小樊
105
2024-07-05 14:43:31
栏目: 编程语言

在PHP中,可以使用stream_context_create函数创建一个包含超时设置的流上下文(stream context),然后将此上下文传递给stream_socket_client或stream_socket_server等函数来设置超时。以下是一个示例代码:

// 创建一个包含超时设置的流上下文
$context = stream_context_create([
    'http' => [
        'timeout' => 10,  // 设置超时时间为10秒
    ],
]);

// 使用流上下文创建一个流
$stream = stream_socket_client('http://www.example.com', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);

if ($stream === false) {
    // 处理连接失败的情况
    echo "Failed to connect to server: $errstr ($errno)";
} else {
    // 读取数据或其他操作
    $data = stream_get_contents($stream);

    // 关闭流
    fclose($stream);
}

在上面的示例中,使用stream_context_create函数创建一个包含超时设置的流上下文,然后将此上下文传递给stream_socket_client函数。在此示例中,超时时间设置为10秒。如果连接超时,将会返回false,并且可以通过$errno和$errstr获取错误信息。

0