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

如何在PHP中仅显示MySQL查询结果中content字段的前N个字符?

PHP中截断字符串显示前N个字符的解决方案

嗨,我来帮你理清这个问题~你提到的<?php echo $row(Left['content','4']) ?>这种写法是不可行的,PHP里没有这种语法哦。下面给你几种在PHP里实现只显示content字段前100个字符的正确方法:

1. 使用substr()函数(适用于单字节字符)

这是PHP中最常用的字符串截断函数,语法很简单:

<?php echo substr($row['content'], 0, 100); ?>
  • 参数说明:
    • 第一个参数是要截断的原字符串(这里就是$row['content'])
    • 第二个参数是起始位置(从0开始)
    • 第三个参数是要截取的长度(这里是100)
  • 如果原字符串长度不足100,substr()会直接返回整个字符串,不会报错。

2. 使用mb_substr()函数(适用于多字节字符,如中文)

如果你的content字段包含中文、日文等多字节字符,用substr()可能会出现乱码,这时候推荐用mb_substr():

<?php echo mb_substr($row['content'], 0, 100, 'UTF-8'); ?>
  • 最后一个参数指定字符编码(一般用UTF-8即可),确保多字节字符被正确截断,不会出现半个字符的情况。

3. 可选:添加省略号优化显示

如果需要在截断后的字符串末尾加上省略号(仅当原字符串长度超过100时显示),可以这样写:

<?php
$content = $row['content'];
$truncated = mb_substr($content, 0, 100, 'UTF-8');
echo $truncated . (mb_strlen($content, 'UTF-8') > 100 ? '...' : '');
?>

这里用mb_strlen()来判断原字符串的长度,保证多字节字符的长度计算准确。

另外补充一下:你提到的MySQL的LEFT()函数也是可行的方案(比如在SQL语句里写SELECT LEFT(content, 100) AS content FROM ...),但既然你想在PHP层面实现,上面的方法就完全满足需求啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 18:52:47