PHP cURL を使用した XML 応答の抽出
PHP では、cURL を利用してサーバーからデータを取得できます。ただし、応答が XML 形式の場合、出力はスカラー変数に格納される可能性があるため、解析が困難になります。これに対処するには、XML 応答をオブジェクト、ハッシュ、または配列に変換して操作を簡単にすることが有益です。
次のコードを考えてみましょう。
function download_page($path){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$path);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$retValue = curl_exec($ch);
curl_close($ch);
return $retValue;
}
$sXML = download_page('http://alanstorm.com/atom');
$oXML = new SimpleXMLElement($sXML);
foreach($oXML->entry as $oEntry){
echo $oEntry->title . "\n";
}
このコードでは、download_page 関数は、エラー、リダイレクト、タイムアウトを適切に処理するためのさまざまなオプションを使用して、cURL を使用して指定された URL から XML ドキュメントを取得します。結果は $sXML 変数に保存されます。
XML 応答をオブジェクトに変換するには、SimpleXMLElement クラスが使用されます。このクラスは、XML ドキュメントの個々の要素と属性に直接アクセスするためのメソッドを提供します。この例では、ドキュメント内のエントリを繰り返し処理し、そのタイトルを出力します。
XML 応答をオブジェクトに解析することにより、それに含まれるデータへのアクセスと操作が大幅に容易になり、開発者が特定のデータを抽出できるようになります。情報を収集し、効果的に処理します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3