【PHP8.x】C14NFileメソッドの使い方

C14NFileメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Dom\HTMLDocumentクラスのC14NFileメソッドは、ドキュメントを標準形式(Canonical XML)でファイルに保存するメソッドです。このメソッドを使用すると、HTMLドキュメントを、XML標準のC14N(Canonical XML)形式に変換し、指定されたファイルパスに書き出すことができます。C14N形式は、XMLドキュメントの論理的な内容を保持しつつ、空白や属性の順序など、形式上の差異を正規化することで、一貫した表現を提供します。これにより、異なるシステム間でのドキュメントの比較や検証が容易になります。

C14NFileメソッドは、ファイルパスを引数として受け取ります。オプションで、排他的なC14N形式を使用するかどうか、コメントを含めるかどうか、プレフィックスリストを指定するかどうかなどのパラメータを設定できます。これらのオプションを使用することで、C14N形式の出力を細かく制御できます。

このメソッドは、ドキュメントをファイルに保存する際にエラーが発生した場合(例えば、ファイルパスが無効な場合や、書き込み権限がない場合など)は、falseを返します。成功した場合はtrueを返します。C14NFileメソッドは、XMLドキュメントの正規化された形式をファイルに保存する必要がある場合に非常に有用です。例えば、デジタル署名を作成する前や、ドキュメントの整合性を検証する前などに使用されます。

構文(syntax)

1Dom\HTMLDocument::C14NFile(string $uri, bool $exclusive = false, bool $withComments = false, array $xpath = null, ?string $nsPrefix = null): int|false

引数(parameters)

string $uri, bool $exclusive = false, bool $with_comments = false, ?array $xpath = null, ?array $ns_prefixes = null

  • string $uri: 正規化するHTMLドキュメントのURIを指定します。
  • bool $exclusive = false: trueを指定すると、指定されたXPathにマッチする要素のみを正規化します。
  • bool $with_comments = false: trueを指定すると、コメントノードも正規化の対象に含めます。
  • ?array $xpath = null: $exclusiveがtrueの場合に、正規化対象とする要素を指定するXPathクエリの配列です。
  • ?array $ns_prefixes = null: XPathクエリで使用する名前空間プレフィックスをマッピングする連想配列です。

戻り値(return)

int|false

C14NFileメソッドは、XML/HTML文書を正規化してファイルに保存した結果を整数値、または失敗した場合はfalseで返します。成功した場合は、正規化されたバイト数を示す整数が返されます。

関連コンテンツ

【PHP8.x】C14NFileメソッドの使い方 | いっしー@Webエンジニア