【PHP8.x】baseURIプロパティの使い方
baseURIプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
baseURIプロパティは、Dom\DocumentTypeオブジェクトが表すDOCTYPE宣言のベースURIを保持するプロパティです。
Dom\DocumentTypeクラスは、HTMLやXMLドキュメントの先頭に記述されるDOCTYPE宣言、例えば <!DOCTYPE html> や <!DOCTYPE root SYSTEM "document.dtd"> のような情報をカプセル化したものです。このbaseURIプロパティは、このDOCTYPE宣言が属するドキュメント、またはこのノード自体が読み込まれた際の基準となるURI(Uniform Resource Identifier)を文字列として提供します。
システムエンジニアを目指す初心者の方にも分かりやすく説明しますと、「ベースURI」とは、ウェブページやXMLドキュメント内で使われる相対的なパス(例えば、「images/logo.png」のようなファイル名だけを記述したパス)を、実際にアクセス可能な絶対的なアドレス(例えば、「http://www.example.com/images/logo.png」のような完全なアドレス)に変換するための出発点となる情報のことです。
このプロパティの値を参照することで、あるDom\DocumentTypeノードが、具体的にどの場所(URI)を基準として読み込まれたのか、あるいはそのノードが属するドキュメント全体の相対URIを解決するための基準URIが何であるかを正確に把握することができます。これは、特に外部リソースを参照するXMLドキュメントなどをPHPで処理する際に、適切なパス解決を行う上で重要な情報となる場合があります。このプロパティは読み取り専用であり、その値はドキュメントのロード時に自動的に設定されます。
構文(syntax)
1<?php 2 3// 一時ファイルを作成し、XMLコンテンツを保存します。 4// このファイルパスがDOMDocumentのbaseURIとなり、DocumentTypeにも継承されます。 5$tempFile = sys_get_temp_dir() . '/example_doc_type.xml'; 6file_put_contents($tempFile, '<!DOCTYPE example_doc SYSTEM "example.dtd"><root/>'); 7 8// DOMDocumentオブジェクトを作成し、一時ファイルをロードします。 9$dom = new DOMDocument(); 10$dom->load($tempFile); 11 12// ドキュメントタイプノードを取得します。 13// これはDom\DocumentTypeクラスのインスタンスとなります。 14$documentType = $dom->doctype; 15 16// ドキュメントタイプノードが存在する場合、baseURIプロパティにアクセスします。 17// baseURIは、このノードが属するドキュメントのベースURIを返します。 18if ($documentType) { 19 echo $documentType->baseURI; 20} 21 22// 作成した一時ファイルを削除します。 23unlink($tempFile); 24 25?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string
Dom\DocumentType クラスの baseURI プロパティは、このドキュメントタイプノードの基底 URI を表す文字列を返します。