[英]POST xml to php with apache2
我正在開發一個通過POST接收XML數據,使用PHP腳本進行處理並返回XML響應的應用程序。
我正在使用以下PHP代碼獲取XML:
$requestStr = file_get_contents('php://input');
$requests = simplexml_load_string($requestStr);
在使用nginx作為服務器的基於Linux的產品硬件上可以很好地工作。
但是,為了進行測試,我希望能夠在MacBook Pro上運行它,因此當我在此XML處理器上進行有針對性的開發時,可以避免“生成映像,在產品上安裝,重新啟動產品,等待,測試更改”循環。 。
我啟用了“網絡共享”功能,該功能啟動了Apache,添加了重寫規則,以在我的開發源目錄中指向方便的URI,並使用curl將請求發送至我的PHP腳本,因此:
curl -H "Content-Type:text/xml" -d @request.xml http://localhost/test/path/testscript
“ testscript”由PHP腳本很好地處理,但是當它讀取為"php:://input"
我什么也沒得到-空字符串。
有人知道為什么在Linux上使用nginx而不在MacOS上使用Apache可以為什么嗎?
我已經搜索並搜索stackoverlow.com都沒有用。 感謝您的任何答案。
更新:我發現至少在此配置中,從php:// stdin讀取將正常工作,而從php://input
讀取則不會。 誰知道?
不熟悉nginx或MacOS,但對於FreeBSD / Apache,您可以嘗試另一種方法:
$ xml_in = $ GLOBALS [“ HTTP_RAW_POST_DATA”];
您還必須將其添加到.htaccess中:
php_value always_populate_raw_post_data 1
HTH,凱文
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.