DOMText クラス
(PHP 5, PHP 7, PHP 8)
はじめに
DOMText クラスは DOMCharacterData を継承しており、 DOMElement あるいは DOMAttr の中身のテキストを表します。
クラス概要
/* プロパティ */
/* 継承したプロパティ */
/* メソッド */
/* 継承したメソッド */
public DOMNode::C14N(
bool
bool
?array
?array
): string|false
}bool
$exclusive
= false
,bool
$withComments
= false
,?array
$xpath
= null
,?array
$nsPrefixes
= null
): string|false
プロパティ
- wholeText
-
論理的に隣接した (要素やコメント、処理命令などで分割されていない) テキストノードの全テキストを保持します。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 | 実装されていなかったメソッド DOMText::replaceWholeText() が削除されました。 |
目次
- DOMText::__construct — 新しい DOMText オブジェクトを作成する
- DOMText::isElementContentWhitespace — このテキストノードが、要素の内容にホワイトスペースが含まれているかを返す
- DOMText::isWhitespaceInElementContent — このテキストノードが空白を含むかどうかを示す
- DOMText::splitText — 指定したオフセットでノードを 2 つに分割する
+add a note
User Contributed Notes 1 note
Trititaty ¶
8 years ago
Text replacement function for DOM.
<?php
function domTextReplace( $search, $replace, DOMNode &$domNode, $isRegEx = false ) {
if ( $domNode->hasChildNodes() ) {
$children = array();
// since looping through a DOM being modified is a bad idea we prepare an array:
foreach ( $domNode->childNodes as $child ) {
$children[] = $child;
}
foreach ( $children as $child ) {
if ( $child->nodeType === XML_TEXT_NODE ) {
$oldText = $child->wholeText;
if ( $isRegEx ) {
$newText = preg_replace( $search, $replace, $oldText );
} else {
$newText = str_replace( $search, $replace, $oldText );
}
$newTextNode = $domNode->ownerDocument->createTextNode( $newText );
$domNode->replaceChild( $newTextNode, $child );
} else {
domTextReplace( $search, $replace, $child, $isRegEx );
}
}
}
}