【PHP8.x】DOMEntityReference::baseURIプロパティの使い方
baseURIプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『baseURIプロパティは、エンティティ参照ノードの絶対基底URIを保持するプロパティです』
このプロパティは読み取り専用であり、そのノードが属するドキュメントの基となるURIを文字列で返します。基底URIとは、ドキュメント内で相対パス(例: ../images/pic.png)を解釈する際の基準となる絶対パス(例: http://example.com/docs/)のことです。この値は、ドキュメントがどこから読み込まれたかによって自動的に決定されます。例えば、DOMDocument::loadHTMLFile() を使って特定のURLからドキュメントを読み込んだ場合、そのURLが基底URIとなります。もしドキュメントがファイルやネットワークからではなく、文字列から直接生成された場合(例: DOMDocument::loadXML())や、実装が基底URIを特定できなかった場合には、このプロパティの値は null になります。ドキュメント内のリソースへのパスを絶対パスに変換する際などに利用されます。このプロパティは DOMNode クラスから継承されています。
構文(syntax)
1<?php 2// サンプル用のXMLファイルを作成 3$xmlString = <<<XML 4<?xml version="1.0" encoding="UTF-8"?> 5<!DOCTYPE root [ 6 <!ENTITY example "This is an entity."> 7]> 8<root>&example;</root> 9XML; 10file_put_contents('sample.xml', $xmlString); 11 12// DOMDocumentオブジェクトを作成し、XMLファイルを読み込む 13$doc = new DOMDocument(); 14$doc->load('sample.xml'); 15 16// root要素の最初の子ノードであるエンティティ参照ノードを取得 17$entityRef = $doc->documentElement->firstChild; 18 19// DOMEntityReferenceオブジェクトのbaseURIプロパティにアクセスして値を取得 20// このプロパティは、ノードがどのドキュメントから来たかを示すURIを保持します 21$uri = $entityRef->baseURI; 22 23// 取得したURIを出力(例: file:///path/to/your/script/sample.xml) 24var_dump($uri); 25 26// 作成したファイルを削除 27unlink('sample.xml'); 28?>
引数(parameters)
引数なし
引数はありません
戻り値(return)
string|null
DOMEntityReference オブジェクトが参照するエンティティの基底 URI を文字列で返します。エンティティの URI が不明な場合は null を返します。