Jas*_*lme 8 php string function
这是我想要做的.我有一个文本块,我想从字符串中提取前50个单词而不切断中间的单词.这就是为什么我更喜欢与字符相对的词,然后我可以使用left()函数.
我知道str_word_count($ var)函数会返回字符串中的单词数,但是如何只返回前50个单词呢?
我完全沉浸在PHP中,但我还不熟悉许多字符串函数.
杰森先生,谢谢你
jas*_*son 15
我建议不要使用单词数作为基线.你可以很容易落得太多少或太多的数据比你预期显示.
我过去使用的一种方法是要求所需的长度,但要确保它不会截断一个单词.这可能适合您:
function function_that_shortens_text_but_doesnt_cutoff_words($text, $length)
{
if(strlen($text) > $length) {
$text = substr($text, 0, strpos($text, ' ', $length));
}
return $text;
}
Run Code Online (Sandbox Code Playgroud)
也就是说,如果你1
作为第二个参数传递给str_word_count
它,它将返回一个包含所有单词的数组,你可以对它使用数组操作.此外,你可以,虽然,它有点hackey,爆炸空间等字符串......但是这会引入很多错误的空间,例如那些不被视为单词的单词.
PS.如果您需要上述函数的Unicode安全版本,并且安装了mbstring
或者iconv
扩展,只需将所有字符串函数替换为它们mb_
或iconv_
前缀等价物.
geo*_*ane 10
str_word_count接受一个可选参数,告诉它返回什么.
返回一个字符串数组,这些字符串是:
$words = str_word_count($var, 1);
Run Code Online (Sandbox Code Playgroud)
然后你可以用以下方法切片:
$len = min(50, count($words));
$first_fifty = array_slice($words, 0, $len);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8264 次 |
最近记录: |