phphtmlnl2br

How to add around nl2br first part HTML class?


I have a simple text like

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, 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.

With PHP's nl2br i can replace the line-break with <br> tags. This works fine. But how to proceed to get following result? So that i have at the end a <span> around the first part of the text.

<span class="highlight">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.</span>

<br>    

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.

Solution

  • The easiest way would be to split the text into separate lines in an array, add the tags you want, and rebuild the string:

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

    Note that the newlines are removed when the string is exploded. When the string is reassembled it's done with <br>, so no need for nl2br() here