我在我的PHP腳本中收到POST請求,並希望使用POST將此帖子調用轉發給另一個腳本。這個怎麼做?如果此操作需要,我可以使用cURL。
回答
也許:
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
http://www.php.net/manual/en/function.curl-setopt.php
這可以作爲像urlencoded的字符串被傳遞 'PARA1 = VAL1 & PARA2 = val2的&...' 或者作爲與字段名作爲關鍵字數組和現場數據作爲價值。
你以前試過這個嗎?使用我使用的CURL版本,這將發送「multipart/form-data」中的字段,而不是普通的帖子。 – 2010-04-28 00:41:32
我從來沒有嘗試過,但PHP文檔在記錄功能方面確實做得很好。 – 2010-04-29 19:19:11
這是大多數時候的答案。但是,如果您在帖子內容中傳遞了深層變量(例如「...&var1 [var2] = val&...」),它將不起作用(var1將作爲空數組傳遞)。 ZZCoder的答案在下面(使用'http_build_query()')是(完整的)正確的答案。 – zeh 2012-10-11 15:35:56
<?php
function executeCurl($arrOptions) {
$mixCH = curl_init();
foreach ($arrOptions as $strCurlOpt => $mixCurlOptValue) {
curl_setopt($mixCH, $strCurlOpt, $mixCurlOptValue);
}
$mixResponse = curl_exec($mixCH);
curl_close($mixCH);
return $mixResponse;
}
// if need any http auth
$username = 'http-auth-username';
$password = 'http-auth-password';
$requestType = 'POST'; // this can be PUT or POST
// this can be $arrPostData = $_POST;
$arrPostData = array(
'key1' => 'value-1-for-k1y-1',
'key2' => 'value-2-for-key-2',
'key3' => array(
'key31' => 'value-for-key-3-1',
'key32' => array(
'key321' => 'value-for-key321'
)
),
'key4' => array(
'key' => 'value'
)
);
// you can set your post data
$postData = http_build_query($arrPostData); // raw php array
$postData = json_encode($arrPostData); // Only USE this when request json data
$arrResponse = executeCurl(array(
CURLOPT_URL => 'http://whatever-your-request-url.com/xyz/yii',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPGET => true,
CURLOPT_VERBOSE => true,
CURLOPT_AUTOREFERER => true,
CURLOPT_CUSTOMREQUEST => $requestType,
CURLOPT_POSTFIELDS => $postData,
CURLOPT_HTTPHEADER => array(
"X-HTTP-Method-Override: " . $requestType,
'Content-Type: application/json', // Only USE this when request json data
),
// if required HTTP Authentication use below lines
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD => $username. ':' . $password
));
如果有人需要這個,這裏是一個新的路線$ _ POST一個功能齊全的捲曲請求你想要的(基於ZZ編碼的回答以上),其中
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://urlOfFileWherePostIsSubmitted.com");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
// ZZ coder's part
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
$response = curl_exec($ch);
curl_close($ch);
- 1. 如何使用$ _POST發佈php變量
- 2. PHP:如何使用cURL在$ _FILES上轉發
- 3. 如何使用PHP和JavaScript $ _POST表單?
- 4. 使用PHP和Curl,深數組發佈
- 5. 如何使用PHP $ _Post
- 6. 如何使用PHP發佈curl
- 7. PHP - 如何使用CURL發送POSTFIELDS?
- 8. 如何在PHP和cURL中使用OAuth?
- 9. 如何發佈JSON與PHP和curl?
- 10. 如何在PHP和cURL中使用base64發送數組?
- 11. 如何使用PHP和Curl發送文件
- 12. 如何使用PHP Curl發送表單域和文件?
- 13. 如何讓PHP使用curl?
- 14. 如何用php curl插入?
- 15. 使用使用curl和PHP PHP的Dom
- 16. 如何轉換curl用於發送郵件在php
- 17. cURL PHP和cURL
- 18. 如何用PHP curl發送GET請求
- 19. 如何使用php $ _POST [something] not user'after [?
- 20. 如何插入$ _POST數組使用PHP
- 21. PHP:如何使用$ _POST在where子句
- 22. 使用cURL使用PHP發佈文件
- 23. PHP表 - 使用curl
- 24. 使用curl和preg_match_all的PHP
- 25. PHP的使用cURL和pThread
- 26. 使用cookie和cURL PHP
- 27. 如何使用curl發佈JSON數據?
- 28. $ _POST,FORM和PhP
- 29. 使用PHP和Curl隱藏響應
- 30. 使用cURL和PHP登錄網站
您的PHP腳本是否需要訪問從轉發的POST發回的響應? – webbiedave 2010-04-27 22:14:53