Zadejte hledaný výraz...

Jak správně oříznout text?

David Musil
verified
rating uzivatele
(69 hodnocení)
11. 11. 2012 10:01:21
Zdravím,
žádám o radu ohledně výpisu textů z databáze. Jelikož je text vkládán do datábaze uživatelem přes WYSIWYG editor, je na něj před uložením mimo jiné použitá funkce htmlspecialchars. Speciální znaky jsou tedy uloženy v databázi ve formě entit.
Pokud chci ale vypsat pouze úryvek z článku a ořiznu řetězec např. na prvních 200 znaků pomocí substr, stane se mi, že pokud je náhodou na tom dvoustém místě znak s dikaritikou, tak to hodí místo toho otazník...
Já asi tuším, že je to tím, že znaky s diakritikou jsou v entitě zapsány více znaky a když text oříznu v té entitě, tak se nemůže zobrazit, ale nevím, jak z toho ven. Nejde to nějak jednodušeji?
11. 11. 2012 10:01:21
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830215
Nishkam
verified
rating uzivatele
(3 hodnocení)
11. 11. 2012 10:26:23
neni to spise tim, ze se pouziva substr misto mb_substr pro text v utf8?
11. 11. 2012 10:26:23
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830214
Mimochodem, proč ukládáš do databáze data, které prošla funkcí htmlspecialchars?
Data bys měl ošetřovat až na výstupu.
11. 11. 2012 10:32:13
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830213
David Musil
verified
rating uzivatele
(69 hodnocení)
11. 11. 2012 10:46:35
Napsal matoni555;868804
Mimochodem, proč ukládáš do databáze data, které prošla funkcí htmlspecialchars?
Data bys měl ošetřovat až na výstupu.
dělám to tak, že když ukládám do databáze, ženu to přes funkci htmlspecialchars a když vypisuji z databáze, tak jedu přes htmlspecialchars_decode
---------- Příspěvek doplněn 11.11.2012 v 10:47 ----------
Napsal nishkam;868799
neni to spise tim, ze se pouziva substr misto mb_substr pro text v utf8?
nevím, zda jsem tě dobře pochopil, ale používám substr... mb_substr nepoužívám.. nebo jsi to myslel opačně tak, že se používá mb_substr místo substr?
11. 11. 2012 10:46:35
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830212
Tomáš Faldyna
verified
rating uzivatele
(54 hodnocení)
11. 11. 2012 11:08:24
Nejdrive si text z db dekoduj do citelne formy a pak jej zkraceny vypis
11. 11. 2012 11:08:24
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830211
David Musil
verified
rating uzivatele
(69 hodnocení)
11. 11. 2012 11:15:24
Napsal winexec;868823
Nejdrive si text z db dekoduj do citelne formy a pak jej zkraceny vypis
Takže takhle?
11. 11. 2012 11:15:24
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830210
Jestliže text před uložením do databáze ošetříš, tak musíš ukládat daleko více dat a stejně ho pak dekóduješ.
Lepší je, když ho uložíš tak, jak je z formuláře a v případě výpisu ho ošetříš.
Jinak pokud používáš UTF8, tak používej mb_substr, jak psal někdo výše. substr pracuje pouze s jednobajtovými znaky. Proto když má nějaký znak více bajtů, tak ti to uřízne uprostřed znaku.
11. 11. 2012 12:14:14
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830209
David Musil
verified
rating uzivatele
(69 hodnocení)
11. 11. 2012 13:56:39
Napsal matoni555;868848
Jestliže text před uložením do databáze ošetříš, tak musíš ukládat daleko více dat a stejně ho pak dekóduješ.
Lepší je, když ho uložíš tak, jak je z formuláře a v případě výpisu ho ošetříš.
Jinak pokud používáš UTF8, tak používej mb_substr, jak psal někdo výše. substr pracuje pouze s jednobajtovými znaky. Proto když má nějaký znak více bajtů, tak ti to uřízne uprostřed znaku.
Díky...
11. 11. 2012 13:56:39
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830208
Nishkam
verified
rating uzivatele
(3 hodnocení)
11. 11. 2012 14:05:26
Napsal matoni555;868848
Jinak pokud používáš UTF8, tak používej mb_substr, jak psal někdo výše. substr pracuje pouze s jednobajtovými znaky. Proto když má nějaký znak více bajtů, tak ti to uřízne uprostřed znaku.
presne tak, ano
11. 11. 2012 14:05:26
https://webtrh.cz/diskuse/jak-spravne-oriznout-text#reply830207
Pro odpověď se přihlašte.
Přihlásit