【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を返します。

【PHP8.x】baseURIプロパティの使い方 | いっしー@Webエンジニア