CakeFest 2024: The Official CakePHP Conference

DOMText::splitText

(PHP 5, PHP 7, PHP 8)

DOMText::splitText Разделяет узел на два, начиная с заданной позиции

Описание

public DOMText::splitText(int $offset): DOMText|false

Разделяет узел на два, вторая часть начинается с позиции offset, полученные узлы становятся братьями.

После разделения исходный узел будет содержать данные до позиции offset. Если исходный узел имеет родителя, то второй, созданный, узел станет следующим братом исходного узла. Если offset равно длине содержимого узла, новый узел всё равно будет создан, но не будет содержать данных.

Список параметров

offset

Позиция, с которой узел будет разделён, начиная с 0.

Возвращаемые значения

Новый узел того же типа, содержащий данные до и после offset.

add a note

User Contributed Notes 1 note

up
1
Flix Cloutier
10 years ago
It should be noted that $offset is a **character offset**, not a **byte offset**. This means that most other PHP string functions that deal with lengths and offsets (strlen, strpos, preg_match with PREG_OFFSET_CAPTURE, etc.) use and return values unsuitable for this method if used with multibyte strings (like UTF-8 strings).

Byte offsets can be converted to character offsets with mb_strlen:

<?php
function char_offset($string, $byte_offset, $encoding = null)
{
$substr = substr($string, 0, $byte_offset);
return
mb_strlen($substr, $encoding ?: mb_internal_encoding());
}
?>
To Top