当前位置:首页 > PHP

php实现中文截取

2026-02-15 17:32:42PHP

PHP 实现中文截取的方法

在 PHP 中截取中文字符串时,需要注意中文字符是多字节字符(UTF-8 编码下通常占 3 个字节),直接使用 substr 会导致乱码或截取不完整。以下是几种常用方法:

使用 mb_substr 函数

mb_substr 是多字节安全的字符串截取函数,需确保 PHP 已启用 mbstring 扩展。

php实现中文截取

$str = "这是一段中文字符串";
$length = 5; // 截取长度
$substring = mb_substr($str, 0, $length, 'UTF-8');
echo $substring; // 输出:这是一段中

参数说明:

php实现中文截取

  • 第一个参数:原始字符串。
  • 第二个参数:起始位置(从 0 开始)。
  • 第三个参数:截取长度。
  • 第四个参数:字符编码(必须指定为 UTF-8)。

自定义函数处理(无 mbstring 扩展时)

如果服务器不支持 mbstring,可以通过正则匹配实现:

function substr_cn($str, $start, $length) {
    return preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}'.
                       '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$length.'}).*/s',
                       '$1', $str);
}

$str = "这是一段中文字符串";
echo substr_cn($str, 0, 5); // 输出:这是一段中

处理截取后添加省略号

截取后若需显示省略号,可检查原字符串长度是否超过截取长度:

$str = "这是一段很长的中文字符串";
$max_length = 5;
if (mb_strlen($str, 'UTF-8') > $max_length) {
    $str = mb_substr($str, 0, $max_length, 'UTF-8') . '...';
}
echo $str; // 输出:这是一段很...

注意事项

  1. 编码一致性:确保字符串操作全程使用 UTF-8 编码。
  2. 函数依赖:优先使用 mb_substr,需在 php.ini 中启用 mbstring 扩展。
  3. 性能考虑:正则方法效率较低,仅作为备用方案。

标签: 中文php
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

实现基础搜索功能 使用PHP和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 //…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php 实现文件下载

php 实现文件下载

实现文件下载的基本方法 使用 PHP 实现文件下载的核心是通过设置 HTTP 头部信息,强制浏览器将文件作为附件下载而非直接显示。以下是一个基础实现示例: $file_path = '/path/t…