我在摘录中修剪字符串如下:
$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()不喜欢搜索空格吗?写这个的正确方法是什么,所以我不会得到错误日志?
由于
答案 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')