- Testa med preg_replace("/(.+)/", "<p>$1</p>", $strängen). Punkten ska normalt matcha alla tecken som inte är radbrytningar, så det där innebär att du tar alla sekvenser som inte är radbrytningar och stoppar dem inom p-taggar.
Hej alla glada!
När jag hämtar ut text från en databas, finns det då något smart sätt att ersätta radbrytningar så att det formateras med <p> och <br />?
Jag använder nu följande:
function contentreplace($content) {
$content = str_replace("\r\n\r\n", "</p>\n<p>", $content);
$content = str_replace("\r\n", "<br />", $content);
$content = '<p>' . $content . '</p>';
return $content;
}
echo contentreplace($row['content']);
Men det måste ju finnas smartare sätt? Typ en regexp-snutt. Nackdelen med min är nämligen att om jag blandar in <dl> eller <ul> m.m. i databasen så kommer det att generera <p><dl></dl></p>, ja ni förstår. Jag vill alltså att replacen bara ska gälla för saker som inte ligger inom <dl> och <ul>. En radbrytning = <br />, två = <p>text</p>, men då som sagt inte om det är inom ovanstående element.
Om sidans doctype är utf-8, om databasen är utf-8, om tabellen är utf-8 och om fältet är utf-8, ska jag då behöva använda utf8_decode() varje gång jag lägger in nåt i databasen samt utf8_encode() när jag vill skriva ut det? Jag vet inte vad dessa gör egentligen, men jag vet att det funkar när jag kör det, men har fått strul när jag inte har haft dem med. Vad kan ha gått galet?
Tackar för svar!

