2011-11-03 101 views
3

我一直在調查一個數據發送到我的PHP web服務與POST請求的問題,誰有時被截斷在中間的某個地方。我發現這是由於一個非中斷的&符號(&)導致中間數據被削減。例如,如果在POST數據是:請求格式不正確時,如何獲取原始請求數據?

data=foobar&morethings 

然後我只會有「數據」 =>「foobar的」在我的$ _POST陣列和「morethings」部分丟失。

顯而易見的解決方案是修復向我的web服務發送POST請求的軟件,以便它跳過&符號,但現在實際上不可能(我們不能讓我們的用戶更容易地更新軟件)。因此我必須找到一個臨時的解決方法。

從PHP獲取原始數據時,是否有可能在發送到webservice之前通過切分POST數據進行解析?

回答

2

是,一對夫婦的選擇。

  1. 使用$xml = file_get_contents('php://input');來讀取原始發佈數據。使用$HTTP_RAW_POST_DATA。這是不太可靠的,雖然該變量並不總是根據PHP ini設置填充。