为什么这个strpos()返回错误?

时间:2014-07-02 01:30:35

标签: php wordpress strpos

我在摘录中修剪字符串如下:

$mod_trim_to = strpos(get_the_excerpt(), ' ', 115);
$trimmed_exceprt = substr(get_the_excerpt(),0,$mod_trim_to);

这里的目标是在第三方图形设计师指定的情况下,将自动生成并突破非常小的空间边界的情况下将摘录修剪为115个字符。

该函数正确返回,但也会发出警告:

PHP Warning:  strpos(): Offset not contained in string

我只能猜测strpos()不喜欢搜索空格吗?写这个的正确方法是什么,所以我不会得到错误日志?

由于

1 个答案:

答案 0 :(得分:2)

Sverri M. Olsen建议的完整示例:

$maxLength = 115;
$excerpt = get_the_excerpt();

if (strlen($string) > $maxLength) {
    $modTrimTo = strpos($excerpt, ' ', $maxLength);
    $trimmedExcerpt = substr($excerpt, 0, $modTrimTo);
} else {
    $trimmedExcerpt = $excerpt;
}

但要小心:如果你有utf8编码的摘录,请使用:

strlen(utf8_decode($excerpt));

或者这个:

mb_strlen($excerpt, 'UTF-8')