【PHP8.x】systemIdプロパティの使い方
systemIdプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
systemIdプロパティは、DOMDocumentTypeクラスに属し、DOCTYPE宣言内のSYSTEM識別子を保持するプロパティです。DOMDocumentTypeクラスは、XMLやHTMLドキュメントの冒頭に記述されるDOCTYPE宣言(文書型宣言)を表します。このsystemIdプロパティは、DOCTYPE宣言で指定された外部サブセットのURI(Uniform Resource Identifier)や、公開識別子に関連付けられたシステム識別子、つまりDTD(Document Type Definition)ファイルの場所を示す情報を保持しています。
例えば、HTMLやXMLドキュメントにおいて、外部DTDファイルを参照するためにSYSTEMキーワードが使われる場合、そのURIがsystemIdプロパティの値として取得されます。このプロパティは読み取り専用であり、その値を直接変更することはできません。もし、DOCTYPE宣言にSYSTEM識別子が指定されていない場合、systemIdプロパティは空文字列を返します。
このプロパティを使用することで、PHPプログラムからDOMツリーを操作する際に、読み込んだドキュメントがどのようなDTDを参照しているかを動的に確認できます。これにより、特定のDTDに準拠したドキュメントであるかどうかのチェックや、DTDの場所に基づいて処理を分岐させるなど、ドキュメントの型情報に基づいた柔軟な処理を実装することが可能です。
構文(syntax)
1<?php 2$dom = new DOMDocument(); 3$dom->loadXML('<?xml version="1.0"?> 4<!DOCTYPE example SYSTEM "http://www.example.com/dtd/example.dtd"> 5<example></example>'); 6 7$documentType = $dom->doctype; 8 9echo $documentType->systemId; 10?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
DOMDocumentTypeのsystemIdプロパティは、DOCTYPE宣言で指定されたシステム識別子(System Identifier)を文字列として返します。これは、外部 DTD ファイルの URI を示します。