Uložení zalomení řádku v MySQL

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Uložení zalomení řádku v MySQL
« kdy: 03. 05. 2019, 09:30:46 »
Pokud entruju řádky v inputu type textarea, tak do DB (MySQL) se zalomení řádků uloží, ale zajímalo by mne jakým symbolem to v té textearea je definováno. Jak se DB dozví, že je tam zalomení?
« Poslední změna: 03. 05. 2019, 09:41:21 od Petr Krčmář »
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Re:Uložení zalomení řádku v MySQL
« Odpověď #1 kdy: 03. 05. 2019, 09:59:37 »
Konce řádků v textarea jsou podle standardu znaky CR a LF (tedy hexadecimálně znaky 0x0D a 0x0A). Ta dvojice se používá jako konce řádků např. ve Windows, v unixech se normálně používá jen LF.

Re:Uložení zalomení řádku v MySQL
« Odpověď #2 kdy: 03. 05. 2019, 10:48:54 »
Jediný problém nastává až při zobrazení, kdy v html to musí být převedeno na
 - k tomu slouží funkce nl2br()

Re:Uložení zalomení řádku v MySQL
« Odpověď #3 kdy: 03. 05. 2019, 11:21:41 »
Jediný problém nastává až při zobrazení, kdy v html to musí být převedeno na <​br> - k tomu slouží funkce nl2br()
To není úplně přesné – při zobrazení je potřeba to prezentovat ve formátu, ve kterém to chcete zobrazit. Ten text můžete chtít znovu zobrazit v <textarea>, můžete ho chtít zobrazit v <​pre> – pak je potřeba zachovat konce řádků. Můžete to chtít zobrazit jako zalomení řádku v HTML, pak opravdu konce řádků nahradíte <​br>. Ale nejčastěji se CR LF používá jako ukončení odstavce (v čistém textu moc nejde zalomení řádku a ukončení odstavce rozlišit – někdy se používají jako ukončení odstavce dva CRLF za sebou), pak je potřeba odstavce obalit <p>…</p>.

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Uložení zalomení řádku v MySQL
« Odpověď #4 kdy: 03. 05. 2019, 13:21:53 »
proč se vlastně ptám....
pokud to z DB vytáhnu pomocí PDO a předám zpět do textarea ...zalomení je automaticky provedeno
pokud to ale pomocí proměné vsadím třeba do div,p  ..tak je to jako jeden řádek
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Uložení zalomení řádku v MySQL
« Odpověď #5 kdy: 03. 05. 2019, 14:56:52 »
proč se vlastně ptám....
pokud to z DB vytáhnu pomocí PDO a předám zpět do textarea ...zalomení je automaticky provedeno
pokud to ale pomocí proměné vsadím třeba do div,p  ..tak je to jako jeden řádek

Mrkni se do zdrojového kódu vygenerovaného HTML - to zalomení tam stále je. Dle standardu však webové prohlížeče každou skupinu bílých znaků v textu nahrazují jedinou mezerou.

Re:Uložení zalomení řádku v MySQL
« Odpověď #6 kdy: 03. 05. 2019, 14:58:33 »
proč se vlastně ptám....
pokud to z DB vytáhnu pomocí PDO a předám zpět do textarea ...zalomení je automaticky provedeno
pokud to ale pomocí proměné vsadím třeba do div,p  ..tak je to jako jeden řádek
To je to, co jsem psal v předchozím komentáři. <textarea> chápe CRLF jako zalomení řádku. Obecně v HTML se ale jakákoli posloupnost bílých znaků chápe jako jedna mezera, takže když ten text vložíte jinam než jsou ty speciální případy (např. <textarea> nebo >), prohlížeč CRLF zobrazí jako mezeru. Když se ale podíváte do zdrojáku, ty znaky CRLF (tady zalomení řádku) tam budou.

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Uložení zalomení řádku v MySQL
« Odpověď #7 kdy: 03. 05. 2019, 17:26:09 »
díky za objasnění
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.