php が XML データを受信できない問題の解決策: 1. 「file_get_contents('php://input');」メソッドを使用して XML データを受信します; 2. 「simplexml_load_string($GLOBALS['」を使用します) HTTP_RAW_POST_DATA'] , 'SimpleXMLElement', LIBXML_NOCDATA);" メソッドを使用して XML データを受信します。
このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。
php が XML データを受信できない場合はどうすればよいですか?
XML を受け入れる PHP に関するいくつかの問題について、simplexml_load_string がデータを受信できない
これら 2 つのメソッドは通常、XML データを受け入れるために使用されます
メソッド 1:
file_get_contents('php://input');
方法 2:
simplexml_load_string($GLOBALS['HTTP_RAW_POST_DATA'], 'SimpleXMLElement', LIBXML_NOCDATA);
方法 1 を使用することをお勧めします。方法 2 は、上位の PHP バージョンでは破棄されました。
-------------- --- -------見栄えの良い分割線-----------------
前書き: この会社のプロジェクトはやや古く、すべて方法 2 を使用します。
問題:curl を使用して他の人が作成したインターフェイスをリクエストすると、メソッド 2 はそれを受け取ることができませんが、メソッド 1 は受け取ることができます。
解決策: テスト後、設定する必要がある cur パラメーターの Content-Type は text/xml
コード:curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: text/ xml; charset=utf-8"));
PHP の cur パラメータの Content-Type のデフォルト値は application/x-www-form-urlencoded, tmd!方法 2 を使用すると、http リクエスト ヘッダーの Content-Type が決まります。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がphp が XML データを受信できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。