在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獲取錯誤信息。