You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP循环中如何限制字符串字段输出字符数并添加省略号

PHP实现描述字段长度限制并添加省略号

原代码

原代码用于循环输出$items数组中每个元素的标题和描述:

<?php foreach ($items as $item) { ?>
  <div class="title"><?= $item->title ?></div>
  <div class="description"><?= $item->description?></div>
<?php } ?>

需求

将description字段限制为最多显示230个字符,超出部分末尾添加省略号“...”,最终输出效果如下:

<div class="title">What is Lorem Ipsum?</div>
<div class="description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type...</div>

解决方案

利用PHP多字节字符串处理函数实现,兼容中文等非ASCII字符,提供两种写法:

写法一:分步处理(可读性更高)

<?php foreach ($items as $item) { ?>
  <div class="title"><?= $item->title ?></div>
  <div class="description">
    <?php
    $description = $item->description;
    $maxDisplayLength = 230;
    // 计算多字节安全的字符串长度
    if (mb_strlen($description) > $maxDisplayLength) {
        // 截断字符串并添加省略号
        echo mb_substr($description, 0, $maxDisplayLength) . '...';
    } else {
        // 长度未超限,直接输出原内容
        echo $description;
    }
    ?>
  </div>
<?php } ?>

写法二:三元表达式(更简洁)

<?php foreach ($items as $item) { ?>
  <div class="title"><?= $item->title ?></div>
  <div class="description">
    <?= mb_strlen($item->description) > 230 ? mb_substr($item->description, 0, 230) . '...' : $item->description ?>
  </div>
<?php } ?>

关键说明

  • 优先用mb_strlen()和mb_substr():这两个函数支持多字节字符(如中文、日文)的长度计算与截断,避免因字符编码导致的统计错误或乱码
  • 省略号按需添加:仅当内容长度超过230字符时才追加,避免短内容末尾出现多余符号

内容的提问来源于stack exchange,提问作者Hector

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:15:07