Fórum Root.cz

Hlavní témata => Server => Téma založeno: ZAJDAN 03. 05. 2019, 09:30:46

Název: Uložení zalomení řádku v MySQL
Přispěvatel: ZAJDAN 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í?
Název: Re:Uložení zalomení řádku v MySQL
Přispěvatel: Filip Jirsák 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.
Název: Re:Uložení zalomení řádku v MySQL
Přispěvatel: Mirek Svrček 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()
Název: Re:Uložení zalomení řádku v MySQL
Přispěvatel: Filip Jirsák 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>.
Název: Re:Uložení zalomení řádku v MySQL
Přispěvatel: ZAJDAN 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
Název: Re:Uložení zalomení řádku v MySQL
Přispěvatel: Kit 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.
Název: Re:Uložení zalomení řádku v MySQL
Přispěvatel: Filip Jirsák 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.
Název: Re:Uložení zalomení řádku v MySQL
Přispěvatel: ZAJDAN 03. 05. 2019, 17:26:09
díky za objasnění