ich möchte in einem HTML String mittels PHP die Zeilenumbrüche mit <br> ersetzen
HTML-Code:
<h1>Testüberschrift1</h1> <p>Text text </p><p class='test'>anfang ende</p> <h1>Testüberschrift2</h1> <p>anfang mitte ende</p>
HTML-Code:
<h1>Testüberschrift1</h1> <p>Text text<br></p> <p class='test'>anfang<br>ende</p> <h1>Testüberschrift2</h1> <p>anfang<br>mitte<br>ende</p>
PHP-Code:
preg_replace('/(<p[^>][I]>)(.[/I])(\n)(.*)(</p>)/', '\1\2<br>\4\5', $html_string);
HTML-Code:
<h1>Testüberschrift1</h1> <p>Text text<br></p> <p class='test'>anfang<br>ende</p> <h1>Testüberschrift2</h1> <p>anfang mitte ende</p>
Hab mich dann durch diverse Foren gesucht/gekämpft dabei ist folgendes herausgekommen:
PHP-Code:
$text_roh = '
<h1>Testüberschrift1</h1>
<p>Text text
</p><p class='test'>anfang
ende</p>
<h1>Testüberschrift2</h1>
<p>anfang
mitte
ende</p>
';
// Umbrüche vereinheitlichen
$text_roh = str_replace(["\r\n", "\r"], "\n", $text_roh);
$dom = new DOMDocument;
$dom->loadHTML($text_roh);
$nodes = $dom->getElementsByTagName('p');
foreach ($nodes as $node) {
$new_text = new DOMText(str_replace("\n", "<br>", $node->textContent));
$node->removeChild($node->firstChild);
$node->appendChild($new_text);
}
echo $dom->saveHTML();
Könnte einen Denkanstoß gebrauchen.
Danke schon mal im Voraus für eure Hilfe
VG HimDa
Einen Kommentar schreiben: