本文目錄一覽:
- 1、xmlHttp.open使用了POST方法,通過url傳參數,後台php只有用get得到參數,不能POST得到參數,為什麼?
- 2、PHP怎麼解析微信支付結果返回的xml
- 3、php如何接收別的伺服器post過來的數據 – 技術問答
- 4、php 如何發送xml報文
xmlHttp.open使用了POST方法,通過url傳參數,後台php只有用get得到參數,不能POST得到參數,為什麼?
因為你POST沒有數據,你雖然請求是POST,但是參數還是通過GET的方式傳遞的。
PHP怎麼解析微信支付結果返回的xml
$xml = $GLOBALS[‘HTTP_RAW_POST_DATA’];
json_decode(json_encode(simplexml_load_string($xml, ‘SimpleXMLElement’, LIBXML_NOCDATA)), true);轉成數組,
或者直接使用微信支付WxPayDataBase類下的
$wxPaydata-FromXml($xml)轉化數組
php如何接收別的伺服器post過來的數據 – 技術問答
通常情況下用戶使用瀏覽器網頁表單向伺服器post提交數據,我們使用PHP的$_POST接收用戶POST到伺服器的數據,並進行適當的處理。但有些情況下,如用戶使用客戶端軟體向服務端php程序發送post數據,而不能用$_POST來識別,那又該如何處理呢?
我們介紹php接受post數據的三種方式:
1.$_POST方式接收數據
$_POST方式是通過 HTTP POST 方法傳遞的變數組成的數組,是自動全局變數。如使用$_POST[『name』]就可以接收到網頁表單以及網頁非同步方式post過來的數據,
即$_POST只能接收文檔類型為Content-Type: application/x-www-form-urlencoded提交的數據,也就是表單POST過來的數據。
2.$GLOBALS[『HTTP_RAW_POST_DATA』]方式接收數據
但$GLOBALS[『HTTP_RAW_POST_DATA』]中是否保存POST過來的數據取決於centent-Type的設置,只有在PHP在無法識別的Content-Type的情況下,才會將POST過來的數據原樣地填入變數$GLOBALS[『HTTP_RAW_POST_DATA』]中,像Content-Type=application/x-www-form-urlencoded時,該變數是空的。
另外,它同樣無法讀取Content-Type為multipart/form-data的POST數據,也需要設置php.ini中的always_populate_raw_post_data值為On,PHP才會總把POST數據填入變數$http_raw_post_data。
3.php://input方式接收數據
如果訪問原始 POST 數據的更好方法是 php://input。php://input 允許讀取 POST 的原始數據。和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,並且不需要任何特殊的php.ini設置,php://input不能用於 enctype=」multipart/form-data」。對於未指定 Content-Type 的POST數據,則可以使用file_get_contents(「php://input」)來獲取原始數據。事實上,用PHP接收POST的任何數據都可以使用本方法。而不用考慮Content-Type,包括二進位文件流也可以。php://input讀取不到$_GET數據。是因為$
php 如何發送xml報文
?php
if( $_SERVER[‘REQUEST_METHOD’] === ‘POST’ ){
// 接收
$content = file_get_contents(‘php://input’);
$xml = simplexml_load_string($content);
echo “來自XML接收方的響應\n”;
print_r( get_object_vars($xml) );
exit;
}
// 發送行為
$xml = xml
?xml version=”1.0″?
FOX
helloworld/hello
/FOX
xml;
$setting = array(
‘http’ = array(
‘method’ = ‘POST’,
‘user_agent’ = ‘Client Application Name’,
‘header’ = “Content-type: application/x-www-form-urlencoded”,
‘content’ = $xml
)
);
$context = stream_context_create($setting);
$url = ”. $_SERVER[‘REQUEST_URI’];
$response = file_get_contents($url, null, $context);
echo $response;
CURL是可以的,但是參數設置比較麻煩。這種情況有一些現成的類庫實現,提供一個簡單的示例
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270776.html