Longhorn PHP 2023 - Call for Papers

DOMText sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

DOMText sınıfı DOMCharacterData sınıfından türetilir ve bir DOMElement veya DOMAttr düğümünün metin içeriğini temsil eder.

Sınıf Sözdizimi

class DOMText extends DOMCharacterData {
/* Özellikler */
public readonly string $wholetext;
/* Miras alınan özellikler */
public string $data;
readonly public readonly int $length;
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Yöntemler */
public __construct(string $data = "")
public splitText(int $offset): DOMText|false
/* Miras alınan yöntemler */
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
    bool $özel = false,
    bool $aAçıklamalı = false,
    ?array $xpath = null,
    ?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
    string $uri,
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(string $önek): string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

wholetext

Mantıken birbirine komşu metin düğümlerinin (eleman, açıklama veya işlem komutları ile ayrılmamış) tüm metinlerini içerir.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 Gerçeklenmemiş olan DOMText::replaceWholeText() yöntemi kaldırıldı.

İçindekiler

add a note

User Contributed Notes 1 note

up
0
Trititaty
6 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 );
      }
    }
  }
}
To Top