【PHP8.x】systemIdプロパティの使い方
systemIdプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
systemIdプロパティは、PHPのDOM拡張機能に含まれるDom\DocumentTypeクラスに属し、XMLまたはHTMLドキュメントのDOCTYPE宣言におけるシステム識別子を保持するプロパティです。
Dom\DocumentTypeクラスは、ドキュメントのルート要素の前に記述される<!DOCTYPE ...>という宣言ノードを表します。このDOCTYPE宣言は、そのドキュメントがどのマークアップ言語の仕様に準拠しているかを示す役割を持ちます。
systemIdプロパティが保持するシステム識別子とは、特に外部のDTD(文書型定義)ファイルやスキーマの場所(URI、通常はURL)を指します。例えば、<!DOCTYPE example SYSTEM "http://www.example.com/example.dtd">のようなDOCTYPE宣言がある場合、systemIdプロパティには"http://www.example.com/example.dtd"という文字列が格納されます。
このプロパティは、外部DTDがDOCTYPE宣言で明示的に指定されている場合にのみ値(URI)を返します。もし外部DTDが指定されていない場合、systemIdプロパティは空の文字列を返します。
systemIdプロパティは読み取り専用であり、ドキュメントの型定義の参照元をプログラムから取得するために利用されます。これにより、ドキュメントの構造や適合性を解析する際に、そのドキュメントがどのような外部リソースを参照しているかを確認できるため、特にドキュメントの検証や処理ロジックの分岐に役立ちます。
構文(syntax)
1<?php 2$dom = new DOMDocument(); 3$dom->loadXML('<!DOCTYPE example SYSTEM "http://www.example.com/example.dtd"><example/>'); 4$documentType = $dom->doctype; 5$systemIdValue = $documentType->systemId; 6?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
DomDocumentType オブジェクトのシステム識別子(URI)を文字列で返します。