0
4

1 に答える 1

2

これは、Unicode 文字があり、間違った場所で正確に減算しており、その文字をレンダリングできないためです。

代わりに、スペースで減算する必要があります。次に例を示します。

echo implode(' ', array_slice(explode(' ', strip_tags(html_entity_decode($sentence, ENT_QUOTES, 'UTF-8'))), 0, 50)); // for 50 words

またはsubstr_unicodeを使用します。

function substr_unicode($str, $s, $l = null) {
    return join("", array_slice(
        preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $s, $l));
}
于 2012-09-18T14:20:29.823 に答える