将文本分成两半,但是在最近的句子中

Ale*_*lex 6 html php string

$ text变量的示例:

Lorem ipsum dolor sit amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident,sunt in culpa qui officia deserunt mollit anim id est laborum.

将它分成两半:

$text

会让我看到"后果"中的"o"字.

如何在文本的一半中找到最近的句子分隔符(点)的位置?在这个例子中,在"o"之后是7个字符.

此文本还包含HTML代码.我想在查找文本的半点时忽略HTML,并忽略html属性中的点等.

mpr*_*att 4

看看substrstrip_tagsstrpos。在找到下一个点的位置的帮助下strpos,使用 strip_tags 可以从字符串中删除所有 html 标签。

$string = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborumt.';
$string = strip_tags($string);
$half = intval(strlen($string)/2);
echo substr($string, 0, strpos($string, '.', $half)+1);
Run Code Online (Sandbox Code Playgroud)

考虑到您必须确保 的值后面存在一个点,$half否则输出将不是您想要的。

也许是这样的?

if (strpos($string, '.', $half) !== false)
    echo substr($string, 0, strpos($string, '.', $half)+1);
else
    echo substr($string, 0, $half) . '...';
Run Code Online (Sandbox Code Playgroud)