如何添加 nl2br 第一部分 HTML 类?

问题描述

我有一个简单的文字

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam,feugiat vitae,ultricies eget,tempor sit amet,ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam,ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.

使用 PHP 的 nl2br,我可以用 <br> 标签替换换行符。这工作正常。但是如何继续获得以下结果?所以我在文本的第一部分末尾有一个 <span>

<span class="highlight">Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam,ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</span>

<br>    

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam,ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.

解决方法

最简单的方法是将文本拆分成数组中的单独行,添加所需的标签,然后重建字符串:

$rawText="Pellentesque habitant morbi...\nPellentesque habitant morbi...";
$arr = explode("\n",$rawText);
$arr[0] = '<span class="highlight">'.$arr[0].'</span>';
$output = implode("<br>",$arr);

请注意,当字符串被分解时,换行符会被删除。当字符串重新组合时,它是用 <br> 完成的,所以这里不需要 nl2br()