PHP字符串/文字处理问题

前端之家收集整理的这篇文章主要介绍了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结尾的额外单词.

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

猜你在找的PHP相关文章