可以说我有以下句子:
A quick brown fox jumped over a lazy dog.
但是我有一个限制,那句话只允许25个字符.这可能会让我有类似的东西:
A quick brown fox jum
然而,这句话没有任何语法意义,所以我宁愿找到我们可以允许的最后一个词,同时保持25个字符限制.这会给我们这样的东西:
A quick brown fox
这将低于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 举报,一经查实,本站将立刻删除。