$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 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 laborum.
将它分成两半:
$half = strlen($text) / 2;
将我带到 consequat
中的 o
字符。
如何找到文本中间最近的句子分隔符(点)的位置?在此示例中,它是 o
之后的 7 个字符。
此文本还包含 HTML 代码。
我想在找出文本的半点时忽略 HTML,并忽略 html 属性中的点等。
最佳答案
看看substr , strip_tags和 strpos .在 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);
考虑到您必须确保在 $half
的值之后存在一个点,否则输出将不是您想要的。
也许是这样的?
if (strpos($string, '.', $half) !== false)
echo substr($string, 0, strpos($string, '.', $half)+1);
else
echo substr($string, 0, $half) . '...';
关于php - 将文本分成两半,但在最近的句子处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10491859/