Fórum Root.cz
Hlavní témata => Server => Téma založeno: 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í?
-
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.
-
Jediný problém nastává až při zobrazení, kdy v html to musí být převedeno na
- k tomu slouží funkce nl2br()
-
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>.
-
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
-
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.
-
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.
-
díky za objasnění