ホームページ  >  記事  >  バックエンド開発  >  php が XML データを受信できない場合はどうすればよいですか?

php が XML データを受信できない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2022-10-24 11:19:101224ブラウズ

php が XML データを受信できない問題の解決策: 1. 「file_get_contents('php://input');」メソッドを使用して XML データを受信します; 2. 「simplexml_load_string($GLOBALS['」を使用します) HTTP_RAW_POST_DATA'] , 'SimpleXMLElement', LIBXML_NOCDATA);" メソッドを使用して XML データを受信します。

php が 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。