PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集PHP建站技术分享-从入门到精通_各类知识收集

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > 工作总结

php简单截取字符串代码示例

管理员 2025-03-12
工作总结
53

在 PHP 中,截取字符串是一个常见的操作。以下是几种常用的字符串截取方法及其代码示例。


1. 使用 substr() 函数

substr() 函数用于从字符串中截取指定长度的子串。

语法

php
复制
substr(string $string, int $start, ?int $length = null): string
  • $string:原始字符串。

  • $start:起始位置(从 0 开始)。

  • $length:可选,截取的长度。如果未指定,则截取到字符串末尾。

示例代码

php
复制
<?php$str = "Hello, World!";// 截取前 5 个字符$substring1 = substr($str, 0, 5);echo $substring1; // 输出: Hello// 从第 7 个字符开始截取$substring2 = substr($str, 7);echo $substring2; // 输出: World!// 从倒数第 6 个字符开始截取$substring3 = substr($str, -6);echo $substring3; // 输出: World!?>

2. 使用 mb_substr() 函数

mb_substr() 是 substr() 的多字节版本,适合处理包含中文等多字节字符的字符串。

语法

php
复制
mb_substr(string $string, int $start, ?int $length = null, ?string $encoding = null): string
  • $encoding:可选,字符编码(如 UTF-8)。

示例代码

php
复制
<?php$str = "你好,世界!";// 截取前 2 个字符$substring1 = mb_substr($str, 0, 2, 'UTF-8');echo $substring1; // 输出: 你好// 从第 3 个字符开始截取$substring2 = mb_substr($str, 3, null, 'UTF-8');echo $substring2; // 输出: 世界!?>

3. 使用 explode() 和 implode() 截取部分字符串

通过 explode() 将字符串拆分为数组,然后使用 implode() 重新组合。

示例代码

php
复制
<?php$str = "apple,banana,orange";// 按逗号拆分字符串$parts = explode(',', $str);// 截取前两部分$substring = implode(',', array_slice($parts, 0, 2));echo $substring; // 输出: apple,banana?>

4. 使用正则表达式截取字符串

通过正则表达式匹配并截取字符串。

示例代码

php
复制
<?php$str = "The price is $100.";// 截取价格部分preg_match('/\$\d+/', $str, $matches);echo $matches[0]; // 输出: $100?>

5. 截取字符串并添加省略号

在截取字符串后,添加省略号以表示截断。

示例代码

php
复制
<?phpfunction truncateString($str, $length, $ellipsis = '...') {
    if (mb_strlen($str, 'UTF-8') > $length) {
        return mb_substr($str, 0, $length, 'UTF-8') . $ellipsis;
    }
    return $str;}$str = "这是一个很长的字符串。";echo truncateString($str, 6); // 输出: 这是一个很...?>

6. 综合示例:截取 HTML 内容并保留标签

在截取包含 HTML 标签的字符串时,需要确保标签的完整性。

示例代码

php
复制
<?phpfunction truncateHtml($html, $length) {
    if (mb_strlen(strip_tags($html), 'UTF-8') <= $length) {
        return $html;
    }

    $truncated = '';
    $count = 0;
    $tags = [];

    $tokens = preg_split('/(<[^>]+>)/', $html, -1, PREG_SPLIT_DELIM_CAPTURE);

    foreach ($tokens as $token) {
        if (preg_match('/^<[^>]+>$/', $token)) {
            $truncated .= $token;
            if (preg_match('/^<(\w+)[^>]*>$/i', $token, $matches)) {
                $tags[] = $matches[1];
            } elseif (preg_match('/^<\/(\w+)[^>]*>$/i', $token, $matches)) {
                $tags = array_diff($tags, [$matches[1]]);
            }
        } else {
            $tokenLength = mb_strlen($token, 'UTF-8');
            if ($count + $tokenLength > $length) {
                $truncated .= mb_substr($token, 0, $length - $count, 'UTF-8');
                break;
            } else {
                $truncated .= $token;
                $count += $tokenLength;
            }
        }
    }

    while (!empty($tags)) {
        $truncated .= '</' . array_pop($tags) . '>';
    }

    return $truncated;}$html = '<p>这是一个<strong>很长的</strong>字符串。</p>';echo truncateHtml($html, 10); // 输出: <p>这是一个<strong>很长的</strong>...</p>?>

7. 总结

在 PHP 中,常用的字符串截取方法包括:

  1. substr():适合单字节字符。

  2. mb_substr():适合多字节字符(如中文)。

  3. explode() 和 implode():适合按特定分隔符截取。

  4. 正则表达式:适合复杂匹配场景。

  5. 截取 HTML 内容:需要确保标签完整性。

根据实际需求选择合适的方法,可以有效实现字符串截取功能。



本文关键词: php 简单 截取 字符串 代码 示例

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部