處理 PHP stream_get_contents 的錯誤,可以通過檢查函數返回值及使用錯誤處理函數來實現。以下是一個示例:
<?php
// 要讀取的 URL 或文件路徑
$url = "https://example.com/file.txt";
// 初始化一個資源變量,用于存儲結果
$result = null;
// 嘗試使用 stream_get_contents 讀取數據
if (($result = stream_get_contents($url)) !== false) {
// 成功讀取數據時,輸出結果
echo "數據讀取成功:\n";
echo $result;
} else {
// 如果返回 false,表示發生錯誤
echo "數據讀取失?。篭n";
// 獲取并輸出錯誤信息
$error_msg = stream_get_contents('php://error');
echo "錯誤信息:\n";
echo $error_msg;
}
?>
在這個示例中,我們首先嘗試使用 stream_get_contents
讀取 URL 或文件路徑的數據。如果函數返回 false
,則表示發生錯誤。我們可以捕獲這個錯誤,并輸出相應的錯誤信息。
另外,你還可以使用 try-catch
語句來捕獲異常,并處理錯誤。例如:
<?php
// 要讀取的 URL 或文件路徑
$url = "https://example.com/file.txt";
try {
// 使用 stream_context_create 創建一個上下文
$context = stream_context_create([
'http' => [
'method' => 'GET',
'timeout' => 10,
],
]);
// 使用 stream_get_contents 讀取數據
$result = stream_get_contents($url, false, $context);
// 檢查結果是否有效
if ($result !== false) {
// 成功讀取數據時,輸出結果
echo "數據讀取成功:\n";
echo $result;
} else {
// 如果返回 false,表示發生錯誤
throw new Exception("數據讀取失敗");
}
} catch (Exception $e) {
// 捕獲異常并處理錯誤
echo "發生異常:" . $e->getMessage();
}
?>
在這個示例中,我們使用 try-catch
語句捕獲可能發生的異常。如果 stream_get_contents
發生錯誤,我們會拋出一個異常,并在 catch
塊中處理它。