【PHP8.x】DOMEntityReference::C14NFile()メソッドの使い方
C14NFileメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
C14NFileメソッドは、DOMEntityReferenceオブジェクトが表すエンティティ参照ノードを、XML正規化(Canonical XML)のルールに従ってファイルに出力するメソッドです。XML正規化とは、XML文書の論理的な意味を保ったまま、空白の扱い、属性の順序、文字参照といった物理的な表現を標準的な形式に統一する処理のことです。このメソッドを使用することで、エンティティ参照ノードの内容を正規化し、指定したファイルパスへ保存できます。第一引数には出力先のファイルURIを指定します。さらに、オプションの引数を用いることで、排他的正規化の適用の有無、コメントノードを含めるかどうかの指定、あるいはXPathクエリや名前空間プレフィックスによる対象ノードの絞り込みといった、より詳細な制御が可能です。処理が成功した場合はファイルに書き込まれたバイト数を整数値で返し、失敗した場合は false を返します。この機能は、XMLデータのデジタル署名や、内容の同一性をバイトレベルで厳密に検証する際に特に重要となります。
構文(syntax)
1public DOMNode::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: 指定されたエンティティ参照のURI
- bool $exclusive = false: 署名対象の要素を排他的にするかどうか
- bool $withComments = false: コメントを含むかどうか
- ?array $xpath = null: XPath式による対象要素の絞り込み
- ?array $nsPrefixes = null: 名前空間プレフィックスのリスト
戻り値(return)
int|false
C14NFile メソッドは、エンティティ参照が標準化された形式で記述できた場合は整数、それ以外の場合は false を返します。