Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Jul 2001

Känna av radbrytningar..

Jag gör just nu en liten webapplikation där text matas in i en databas. Använder mig av PHP samt MySQL för detta. Ibland är det flera stycken text och när jag matat in text i databasen och sen hämtar den igen via nån PHP-sida så blir det en enda stor klumptext bara. Hur kan jag fixa till så att radbrytningar känns av och gör radbrytningar i texten så det ser ut precis som man matade in texten?
Alltså typ att <br /> och <p> läggs till automatiskt där det ska?

Följdfråga:
Är det bäst att lägga till <br /> och <p>-tecken i databasen eller är det bättre att göra det när man hämtar datan på något sätt? Jag vill nämligen inte att html-kod ska synas i text som redigeras från en textarea på webplatsen (om man vill redigera en text i databasen)..

Tack på förhand!

WS: AMD Ryzen 7 1700 | 16 GB DDR4 | Geforce GTX 1060 OC 6GB | 480 + 256 + 240 + 240 GB SSD | Win10 x64 Professional + Antergos Linux (Arch-derivat)
Bärbar: Macbook Pro Retina 13" | Intel Core I5 2,4Ghz | 16GB RAM | 256GB Flash
Server: 3x HP Proliant microserver Gen8 | 16 GB DDR3 ECC ram | Sammanlagt 26TB HDD | Esxi

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2004

Det finns mängder om detta på nätet. Googla "php guestbook tutorial" och liknande, där finns detta ofta med som ett steg. Ännu bättre är att googla "php mysql br p" och typ "php line break paragraph"

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

nl2br() ersätter radbrytningar med markup, det finns exempel på hur man skapar paragrafer i kommentarerna. Det lättaste sättet är att omge texten med <p></p> och sedan ersätta alla platser med 2 eller fler radbrytningar med </p><p>. Om du blandar annan markup, t.ex. bbcode, i texten är det däremot mer invecklat att generera korrekta paragrafer.

Spara råtext i databasen och formatera per användningsområde om du inte är absolut säker på att den aldrig ska presenteras som annat än färdig html.

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Jul 2001
Citat:

Ursprungligen inskrivet av Biberu
nl2br() ersätter radbrytningar med markup, det finns exempel på hur man skapar paragrafer i kommentarerna. Det lättaste sättet är att omge texten med <p></p> och sedan ersätta alla platser med 2 eller fler radbrytningar med </p><p>. Om du blandar annan markup, t.ex. bbcode, i texten är det däremot mer invecklat att generera korrekta paragrafer.

Spara råtext i databasen och formatera per användningsområde om du inte är absolut säker på att den aldrig ska presenteras som annat än färdig html.

Tackar! Fungerar utmärkt
Den ersätter ju per default radbrytningar med <br />, vilket duger för min del.
Dubbla <br /> gör ju inget..

WS: AMD Ryzen 7 1700 | 16 GB DDR4 | Geforce GTX 1060 OC 6GB | 480 + 256 + 240 + 240 GB SSD | Win10 x64 Professional + Antergos Linux (Arch-derivat)
Bärbar: Macbook Pro Retina 13" | Intel Core I5 2,4Ghz | 16GB RAM | 256GB Flash
Server: 3x HP Proliant microserver Gen8 | 16 GB DDR3 ECC ram | Sammanlagt 26TB HDD | Esxi

Trädvy Permalänk
Medlem
Plats
Helsingborg
Registrerad
Okt 2004

Enkla radbrytningar = <br/>
Detta är ett exempel på simpel radbrytning vilket ska <br/>

Detta är ett exempel på dubbla radbrytningar vilket ofta tyder på en paragraph och ska va <p>$1</p>.

Exempel:

$text = 'Lorem ipsum. Nam in leo augue. Morbi id libero nulla.'; $patterns = array( '/(.*?)\n\n/is' => '$1</p><p>', '/(.*?)\n/is' => '$1<br/>', ); $text = preg_replace(array_keys($patterns), array_values($patterns), $text); echo '<p>'. $text .'</p>';

Output:

<p>Lorem ipsum. <br/>Nam in leo augue.</p><p>Morbi id libero nulla.</p>

Edit: Korta ner texten lite. Sweclockers tyckte inte om det där.