2024 PHP Conference Japan

DOMText 類別

(PHP 5, PHP 7, PHP 8)

簡介

DOMText 類別繼承自 DOMCharacterData,並表示 DOMElementDOMAttr 的文字內容。

類別概要

class DOMText extends DOMCharacterData {
/* 繼承的常數 */
/* 屬性 */
公開 唯讀 字串 $wholeText;
/* 繼承的屬性 */
公開 字串 $data;
公開 唯讀 整數 $length;
公開 唯讀 字串 $nodeName;
公開 唯讀 整數 $nodeType;
公開 唯讀 ?DOMNode $parentNode;
公開 唯讀 ?DOMElement $parentElement;
公開 唯讀 DOMNodeList $childNodes;
公開唯讀 DOMNode $firstChild;
公開唯讀 DOMNode $lastChild;
公開唯讀 DOMNode $previousSibling;
公開唯讀 DOMNode $nextSibling;
公開唯讀 DOMNamedNodeMap $attributes;
公開唯讀 布林值 $isConnected;
公開唯讀 DOMDocument $ownerDocument;
公開唯讀 字串 $namespaceURI;
公開 字串 $prefix;
公開唯讀 字串 $localName;
公開唯讀 字串 $baseURI;
/* 方法 */
公開 __construct(字串 $data = "")
公開 splitText(整數 $offset): DOMText|false
/* 繼承的方法 */
公開 DOMNode::C14N(
    bool $exclusive = false,
    bool $withComments = false,
    ?陣列 $xpath = null,
    ?陣列 $nsPrefixes = null
): 字串|false
公開 DOMNode::C14NFile(
    字串 $uri,
    bool $exclusive = false,
    bool $withComments = false,
    ?陣列 $xpath = null,
    ?陣列 $nsPrefixes = null
): 整數|false
公開 DOMNode::isSupported(字串 $feature, 字串 $version): 布林值
}

屬性

wholeText

保存邏輯上相鄰(不以元素、註釋或處理指令分隔)的文字節點的所有文字。

更新日誌

版本 說明
8.0.0 未實作的方法 DOMText::replaceWholeText() 已被移除。

目錄

新增註釋

使用者貢獻的註釋 1 則註釋

Trititaty
8 年前
DOM 的文字替換函式。

<?php
函式 domTextReplace( $search, $replace, DOMNode &$domNode, $isRegEx = false ) {
if (
$domNode->hasChildNodes() ) {
$children = array();
// 由於在修改 DOM 的同時循環遍歷它並不是個好主意,所以我們先準備一個陣列:
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 );
}
}
}
}
To Top