首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中截取一定数量的字符后的文本?

如何在PHP中截取一定数量的字符后的文本?
EN

Stack Overflow用户
提问于 2009-08-06 20:29:11
回答 10查看 44.9K关注 0票数 21

我有两个字符串,我想将其限制为前25个字符。有没有办法去掉第25个字符之后的文字,然后加上一个...到字符串的末尾?

所以'12345678901234567890abcdefg‘会变成'12345678901234567890abcde...’其中'fg‘被截断。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-08-06 20:33:59

我可以修改一下帕兰的代码吗?

代码语言:javascript
复制
$truncated = (strlen($string) > 20) ? substr($string, 0, 20) . '...' : $string;

这不会添加“...”如果它更短的话。

票数 50
EN

Stack Overflow用户

发布于 2009-08-06 20:38:25

为了避免在单词中间进行剪切,您可能希望尝试使用wordwrap函数;我想,可以这样做:

代码语言:javascript
复制
$str = "this is a long string that should be cut in the middle of the first 'that'";
$wrapped = wordwrap($str, 25);
var_dump($wrapped);

$lines = explode("\n", $wrapped);
var_dump($lines);

$new_str = $lines[0] . '...';
var_dump($new_str);

$wrapped将包含:

代码语言:javascript
复制
string 'this is a long string
that should be cut in the
middle of the first
'that'' (length=74)

$lines数组将如下所示:

代码语言:javascript
复制
array
  0 => string 'this is a long string' (length=21)
  1 => string 'that should be cut in the' (length=25)
  2 => string 'middle of the first' (length=19)
  3 => string ''that'' (length=6)

最后,您的$new_string

代码语言:javascript
复制
string 'this is a long string' (length=21)

使用子字符串,如下所示:

代码语言:javascript
复制
var_dump(substr($str, 0, 25) . '...');

你会得到:

代码语言:javascript
复制
string 'this is a long string tha...' (length=28)

这看起来不是很好:-(

不过,祝你玩得开心!

票数 10
EN

Stack Overflow用户

发布于 2009-08-06 20:31:02

很快的,

代码语言:javascript
复制
$truncated = substr('12345678901234567890abcdefg', 0, 20) . '...'
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1241224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档