ThinkPHP は優れた PHP 開発フレームワークです。ほとんどの Web アプリケーションにはデータ、特に XML データの送信と処理が含まれます。場合によっては、クライアントからサーバーに送信された XML データを取得し、後で処理することが必要になることがあります。この記事では、ThinkPHP で要求された XML データを取得する方法を紹介します。
ThinkPHP フレームワークの Input クラスは、リクエストからデータを取得するためのメソッドを提供します。 XML データを取得するには、このクラスの入力メソッドを使用します。
サンプル コードは次のとおりです。
$xmlData = file_get_contents("php://input"); $xml = simplexml_load_string($xmlData);
このサンプル コードは、リクエストから XML データを取得し、$xmlData 変数に保存します。 simplexml_load_string() 関数は、この XML データを SimpleXMLElement オブジェクトにロードします。次のステップで XML データを操作できます。
$request オブジェクトを使用すると、GET および POST パラメータ、Cookie などのリクエスト情報にアクセスできます。 XML データを取得するには、getRequestPayload() メソッドを使用します。このメソッドはリクエスト本文の生データを返します。これは XML 形式に変換できます。
サンプル コードは次のとおりです。
$xmlData = $this->request->getRequestPayload(); $xml = simplexml_load_string($xmlData);
上記のサンプル コードでは、getRequestPayload() メソッドを使用して XML データを取得し、simplexml_load_string() 関数を使用してそれを SimpleXMLElement オブジェクトにロードします。 。
PHP の組み込み XML パーサーを使用して XML データを解析することもできます。
サンプル コードは次のとおりです。
$xmlData = file_get_contents("php://input"); $parser = xml_parser_create(); xml_parse_into_struct($parser, $xmlData, $values, $index); xml_parser_free($parser); $xml = array(); foreach($values as $value){ if($value['type'] == 'complete'){ $xml[$value['tag']] = trim($value['value']); } }
上記のサンプル コードは、まずリクエストから XML データを取得し、次に xml_parser_create() 関数を使用して XML パーサー オブジェクトを作成します。次に、XML データは xml_parse_into_struct() 関数を使用して解析され、$values 配列に保存されます。$index 配列は、XML ドキュメントの構造を追跡するために使用されます。最後に、ループを使用して $values 配列を反復処理し、XML 要素の値を配列に格納します。
概要
この記事では、ThinkPHP で要求された XML データを取得する 3 つの方法を紹介しました。 Input クラスの input メソッド、$request オブジェクトの getRequestPayload() メソッド、および PHP の組み込み XML パーサーを使用します。アプリケーションの要件に基づいて、最適な方法を選択できます。
以上がthinkphp が要求された XML データを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。