【PHP8.x】C14NFileメソッドの使い方
C14NFileメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
C14NFileメソッドはDOMEntityクラスに属し、XMLドキュメント内の特定のエンティティが表す内容を、Canonical XML (C14N) 形式に正規化してファイルに出力するメソッドです。Canonical XMLとは、XMLドキュメントの内部表現に存在する可能性のある曖昧さを取り除き、その内容をバイト列として一意に表現するための標準化された方法です。例えば、属性の順序や名前空間の宣言、空白文字の扱いなど、目には見えにくい差異を統一し、どのような環境や方法で生成されたXMLであっても、その意味内容が同じであれば同じ表現となるように変換します。
このメソッドを利用することで、DOMEntityオブジェクトが保持するXMLデータを、C14N形式で永続化したり、他のシステムと確実に比較できる形式で受け渡したりすることが可能になります。特に、XMLデジタル署名の検証や、XMLドキュメントの厳密な比較を行う際に、その正確性と信頼性を保証するために非常に重要な役割を果たします。引数として出力先のファイルパスを指定し、オプションによって正規化の詳細な挙動を制御できる場合があります。処理が成功した場合には真(true)を、失敗した場合には偽(false)を返すことが期待されます。これにより、初心者の方でもXMLデータの整合性を保ちながらファイル操作を行うことができます。
構文(syntax)
1<?php 2$bytesWrittenOrFalse = $dom_entity->C14NFile( 3 'path/to/output.xml', 4 false, 5 false, 6 null, 7 null 8);
引数(parameters)
string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null
- string $uri: 正規化するXML/HTMLドキュメントのURIを指定します。
- bool $exclusive = false: trueに設定すると、排他的な正規化モードで処理します。
- bool $withComments = false: trueに設定すると、コメントノードも正規化の対象に含めます。
- ?array $xpath = null: XPath式を指定し、指定したノードのみを正規化します。
- ?array $nsPrefixes = null: 名前空間のプレフィックスを配列で指定し、正規化の対象とする名前空間を限定します。
戻り値(return)
string|bool
C14NFileメソッドは、エンティティを正規化された形式の文字列として返します。正規化に失敗した場合はfalseを返します。