在 PHP 程式中主動向其他 URL 發送 POST 資料(如呼叫 API、整合第三方服務)是常見需求。使用 cURL 擴充套件是最靈活、穩健的方案。
<?php
$postData = [
'data1' => 'testdata1',
'data2' => 'testdata2',
'data3' => 'testdata3',
];
$url = 'https://yourdomain/do.php';
// 組裝 application/x-www-form-urlencoded 字串
$query = http_build_query($postData); // 內建函式自動處理 urlencode
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $query,
CURLOPT_RETURNTRANSFER => true, // 直接回傳回應內容而非輸出
CURLOPT_HEADER => false,
]);
$result = curl_exec($ch);
if ($result === false) {
error_log('cURL 錯誤: ' . curl_error($ch));
}
curl_close($ch);
// $result 即為遠端回應
?>
http_build_query() 替代手動迴圈組裝,自動處理 URL 編碼與特殊字元。CURLOPT_RETURNTRANSFER => true 讓 curl_exec() 回傳字串,方便後續處理。CURLOPT_TIMEOUT => 10(秒)、CURLOPT_CONNECTTIMEOUT => 5。CURLOPT_POSTFIELDS 設為 json_encode($data),並加入 Header:CURLOPT_HTTPHEADER => ['Content-Type: application/json']。