【PHP8.x】textContentプロパティの使い方

textContentプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

textContentプロパティは、Dom\Nodeクラスに属し、ノードとそのすべての子孫ノードのテキストコンテンツを保持するプロパティです。このプロパティを利用することで、HTMLドキュメント内の特定の要素(ノード)に含まれる、すべてのテキスト情報を取得したり、設定したりすることができます。

具体的には、このプロパティを読み込む(取得する)場合、指定したDOMノード(例えば、ウェブページの<div><p>要素など)の内部に存在するHTMLタグを完全に無視し、目に見える純粋なテキストだけを一つの文字列として取得します。この際、子ノードや孫ノードのテキストもすべて結合されて含まれるため、階層構造を持つ要素全体のテキスト内容を一度に取得するのに役立ちます。取得されるテキストには、整形のための空白文字や改行などもそのままの形で含まれます。

一方で、このプロパティに新しい文字列を代入して設定する場合、ノードの既存の子ども要素やテキストノードはすべて削除され、代入された文字列が新しいテキストノードとしてそのノードの子どもに設定されます。設定される文字列は、HTMLタグとして解釈されることなく、純粋なテキストとして扱われます。

したがって、ウェブページから要素のテキスト部分だけを簡単に抽出したい時や、プログラムによって要素の表示テキストを安全に更新したい場合に非常に便利な機能です。PHP 8のDom\Nodeクラスで利用できるため、DOM操作を行う際に頻繁に利用されます。ただし、外部からの入力値を直接設定する際は、クロスサイトスクリプティング(XSS)のようなセキュリティリスクに注意し、適切にサニタイズ(無害化)するなどの対策を講じることが重要です。

構文(syntax)

1<?php
2$doc = new DOMDocument();
3$element = $doc->createElement('p');
4
5// Dom\Node::textContent プロパティにテキストを設定する
6$element->textContent = 'これはサンプルのテキストです。';
7
8// Dom\Node::textContent プロパティからテキストを取得して出力する
9echo $element->textContent;
10?>

引数(parameters)

戻り値(return)

?string

このプロパティは、ノードに含まれるすべてのテキストコンテンツを文字列として返します。ノードにテキストコンテンツがない場合は null を返します。