file_get_contents()
是 PHP 中用于從文件或 URL 獲取內容的函數。當你需要從遠程服務器獲取數據時,可以使用這個函數。以下是一些使用 file_get_contents()
獲取遠程數據的技巧:
stream_context_create()
函數設置超時限制。$context = stream_context_create(['http' => ['timeout' => 5]]); // 設置超時為 5 秒
$url = 'http://example.com';
$data = file_get_contents($url, false, $context);
file_get_contents()
不會拋出異常,而是返回 false
。為了更好地處理 HTTP 錯誤,可以使用 @
符號來忽略錯誤,并檢查返回值。$url = 'http://example.com';
$data = @file_get_contents($url);
if ($data === false) {
$error = error_get_last();
echo 'Error: ' . $error['message'];
} else {
echo $data;
}
stream_context_create()
函數。$headers = [
'User-Agent: MyCustomUserAgent',
'Authorization: Bearer myAccessToken'
];
$context = stream_context_create(['http' => ['header' => implode("\r\n", $headers)]]);
$url = 'http://example.com';
$data = file_get_contents($url, false, $context);
stream_context_create()
函數中設置代理。$proxy = 'tcp://proxy.example.com:8080';
$context = stream_context_create(['http' => ['proxy' => $proxy]]);
$url = 'http://example.com';
$data = file_get_contents($url, false, $context);
stream_context_create()
函數中設置請求方法和 POST 數據。$postData = http_build_query(['key' => 'value']);
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postData
]
]);
$url = 'http://example.com';
$data = file_get_contents($url, false, $context);
總之,file_get_contents()
是一個強大的函數,可以用于從遠程服務器獲取數據。通過設置上下文選項,可以實現超時限制、錯誤處理、自定義 HTTP 頭、代理和 POST 請求等功能。