簡體   English   中英

從PHP讀取非鍵/值POST數據

[英]Reading non key/value POST data from PHP

我有一個將數據發布到URL而不發送鍵/值對,而是使用XML有效負載的系統。 我需要在Apache下使用PHP讀取XML數據,但是PHP的$_POST數組用於鍵/值對,因此為空,因為未提供鍵。

我嘗試從php://inputphp://stdin讀取,但這也是空白。

如何使用PHP讀取原始POST數據? 我無法控制輸入,因為它是由第三方應用程序生成的。 想象這是一個接受XML負載的RESTful URL。

根據PHP手冊, php://input is not available with enctype="multipart/form-data". 如果這是發布給您的內容,PHP將不允許您訪問原始數據。 解決此問題的一種方法:
來源: https : //stackoverflow.com/questions/1361673/get-raw-post-data

將此添加到您的apache.conf中:

<Location "/backend/XXX.php">
        SetEnvIf Content-Type ^(multipart/form-data)(.*) MULTIPART_CTYPE=$1$2
        RequestHeader set Content-Type application/x-httpd-php env=MULTIPART_CTYPE
        RequestHeader set X-Real-Content-Type %{MULTIPART_CTYPE}e env=MULTIPART_CTYPE
</Location>

從PHP 5.4開始,還有“ enable-post-data-reading” ini設置( http://php.net/manual/en/ini.core.php#ini.enable-post-data-reading )。

從PHP手冊中: “禁用此選項將導致不填充$ _POST和$ _FILES。唯一的讀取postdata的方法將是通過php:// input流包裝器。這對於代理請求或處理以內存有效方式發布數據。”

嘗試禁用此設置,然后從php://input讀取。

您可以通過以下方法檢查並查看帖子中是否存儲了任何信息:

print_r( $_POST );

您想要做的可能是在名為xml的密鑰中發送XML數據或類似的操作,從而導致$_POST['xml'] = 'your xml code'

編輯:

如果您可以發布用於創建$_POST的代碼,那也很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM