【PHP8.x】Dom\EntityReference::C14NFile()メソッドの使い方
C14NFileメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『C14NFileメソッドは、Dom\EntityReferenceオブジェクトが表すエンティティ参照ノード、およびその子孫ノードを正規化し、その結果を指定されたファイルに書き込む処理を実行するメソッドです。正規化(Canonicalization)とは、XML文書の表現形式を、決められた一貫性のあるルールに基づいて統一された形式に変換する処理を指します。例えば、属性の順序や空白の扱いなどを統一することで、見た目上の記述が異なっていても、論理的に同じ内容を持つXML文書を比較できるようになります。このメソッドの第一引数には、出力先のファイルパスを文字列で指定します。続く引数で、排他的正規化を行うか、コメントを含めるかといった、正規化の具体的なルールを真偽値で制御することが可能です。処理が成功した場合にはファイルに書き込まれたバイト数を整数で返し、失敗した場合にはfalseを返します。この機能は、XMLデータのデジタル署名や、異なるシステム間でXMLデータの一貫性を厳密に検証する必要がある場合などに特に重要となります。
構文(syntax)
1public Dom\EntityReference::C14NFile( 2 string $uri, 3 bool $exclusive = false, 4 bool $withComments = false, 5 ?array $xpath = null, 6 ?array $nsPrefixes = null 7): int|false
引数(parameters)
string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null
- string $uri: 正規化するXMLドキュメントのURIまたはDOMDocumentオブジェクト
- bool $exclusive = false: trueに設定すると、排他的な名前空間カノニカル化が有効になります
- bool $withComments = false: trueに設定すると、コメントもカノニカル化に含めます
- ?array $xpath = null: カノニカル化するノードを絞り込むためのXPathクエリの配列
- ?array $nsPrefixes = null: 名前空間プレフィックスのマッピングを指定する連想配列
戻り値(return)
int|false
このメソッドは、エンティティ参照を正規化してファイルに保存する際の成功または失敗を示す整数値、あるいは操作に失敗した場合は false を返します。