【PHP8.x】baseURIプロパティの使い方
baseURIプロパティの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
baseURIプロパティは、DOMDocumentFragmentクラスに属し、ノードの基底URI(Base URI)を保持するプロパティです。
基底URIとは、ウェブドキュメント内の相対URI(例えば、画像ファイルやリンクのパスなど)を、完全な絶対URIに解決する際の基準となるURIを指します。例えば、ウェブページのHTMLドキュメントであれば、そのページのURL自体が基底URIとなります。
DOMDocumentFragmentは、HTMLやXMLドキュメントの「断片」を表すオブジェクトであり、完全なドキュメントとしては扱われません。そのため、DOMDocumentFragmentオブジェクト自体は、通常、独立したURIを持つことがありません。
したがって、このbaseURIプロパティにアクセスした場合、ほとんどのケースで値はnullを返します。これは、DOMDocumentFragmentが単独でURIの解決基準を持つのではなく、それが最終的に挿入される親ドキュメントの基底URIに依存して相対パスが解決されるためです。
PHPでDOM操作を行う際に、DOMDocumentFragment内の要素が持つ相対的なリソースパスの解決基準を確認したい場合、このプロパティの値がnullであることを考慮する必要があります。この振る舞いを理解することで、より堅牢なDOM処理を実装できるようになります。
構文(syntax)
1<?php 2 3// DOMDocumentオブジェクトを作成します 4$doc = new DOMDocument(); 5 6// HTMLを読み込みます。このとき、<base>タグでベースURIが設定されます 7$doc->loadHTML('<html><head><base href="http://www.example.com/path/"></head><body></body></html>'); 8 9// ドキュメントに属するDOMDocumentFragmentオブジェクトを作成します 10$fragment = $doc->createDocumentFragment(); 11 12// DOMDocumentFragmentのbaseURIプロパティ(読み取り専用)にアクセスし、 13// 所属するドキュメントのベースURIを取得します 14echo $fragment->baseURI; 15 16?>
引数(parameters)
戻り値(return)
string|null
このプロパティは、このDOMDocumentFragmentの基底URIを文字列として返します。基底URIが設定されていない場合は、nullを返します。