PHP的cURL庫提供了許多高級功能,可以幫助您更好地處理HTTP請求。以下是一些常見的高級用法:
$url = "https://example.com/api";
$data = array("key" => "value");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
curl_close($ch);
$headers = array(
"Content-Type: application/json",
"Authorization: Bearer YOUR_ACCESS_TOKEN"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
$file = "@/path/to/your/file.jpg";
$data = array("file" => $file);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
$proxy = "http://proxy.example.com:8080";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
$response = curl_exec($ch);
curl_close($ch);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 設置超時時間為30秒
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // 設置連接超時時間為10秒
$response = curl_exec($ch);
curl_close($ch);
function progressCallback($downloadSize, $downloaded, $uploadSize, $uploaded) {
echo "Downloaded: $downloaded / $downloadSize\n";
echo "Uploaded: $uploaded / $uploadSize\n";
}
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progressCallback');
$response = curl_exec($ch);
curl_close($ch);
這些高級用法只是cURL庫功能的一部分。您可以查閱PHP官方文檔以獲取更多關于cURL庫的信息:https://www.php.net/manual/en/book.curl.php