PHP Conference Japan 2024

DOMText::splitText

(PHP 5, PHP 7, PHP 8)

DOMText::splitText在指定偏移量处将此节点分成两个节点

描述

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

在指定的 offset 处将此节点分成两个节点,并将这两个节点都保留在树中作为兄弟节点。

拆分后,此节点将包含直到 offset 的所有内容。如果原始节点具有父节点,则新节点将作为原始节点的下一个兄弟节点插入。当 offset 等于此节点的长度时,新节点没有数据。

参数

offset

要拆分的偏移量,从 0 开始。

返回值

相同类型的新的节点,包含 offset 及其之后的所有内容。

添加注释

用户贡献的注释 1 条注释

Flix Cloutier
11 年前
需要注意的是,$offset 是一个 **字符偏移量**,而不是 **字节偏移量**。这意味着大多数其他处理长度和偏移量的 PHP 字符串函数(strlen、strpos、带有 PREG_OFFSET_CAPTURE 的 preg_match 等)如果与多字节字符串(如 UTF-8 字符串)一起使用,则使用和返回的值不适合此方法。

字节偏移量可以使用 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