微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP字符串/文字处理问题

可以说我有以下句子:
A quick brown fox jumped over a lazy dog.

但是我有一个限制,那句话只允许25个字符.这可能会让我有类似的东西:

A quick brown fox jum

然而,这句话没有任何语法意义,所以我宁愿找到我们可以允许的最后一个词,同时保持25个字符限制.这会给我们这样的东西:

A quick brown fox

这将低于25个字符限制,但它具有更多的语法意义.即
单词没有被分解,我们在保持极限的同时拥有最多可理解单词.

如何编写一个将接受字符串的函数一个char限制(如25),如果字符串超出限制,则返回具有最大字数的字符串?

使用正则表达式很容易:
function first_few_words($text,$limit) {
    // grab one extra letter - it might be a space
    $text = substr($text,$limit + 1);
    // take off non-word characters + part of word at end
    $text = preg_replace('/[^a-z0-9_\-]+[a-z0-9_\-]*\z/i','',$text);
    return $text;
}

echo first_few_words("The quick brown fox jumps over the lazy dog",25);

此实现的一些额外功能

>也可以在换行符和制表符处拆分单词.
>保存一个以字符25结尾的额外单词.

编辑:更改正则表达式,以便只将字母,数字,“_”和“ – ”视为单词字符.

原文地址:https://www.jb51.cc/php/133499.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐