Autor Zpráva
Karolín
Profil *
1)

Začínám s HTML a nyní jsem dospěl k ukádání dat do databáze.
Chtěl bych si naprogramvoat svůj jednoduchý editor článků a tápu jak ošetřit výpis některých spec. znaků a entyt.

Když mám v databázi sloupec "obsah_clanku" (VARCHAR UTF8_czech_ci)
a v textu bude např. toto:


<h1 class="h">Nadpis<h1>
<p>Nějaký odstavec obsahující speciální znaky >< třeba i "uvozovky" a 'apostrofy' a třeba ještě "and" & atd</p>


Mám se snažit převádět znaky: ><"&' umístěné mezi tagy na entyty za každou cenu, nebo je všem dnešním prohlížečům toto jedno a zobrazí je korektně?

Co doporučí profík, ukládat do databáze surový původní text, nebo text uložit do databáze s entytami, nebo nuceně entyty vytvořit až při výpisu, nebo si s entytami v tomto případě nezatěžovat hlavu? Co je správná volba? Díky.

Pozn. Věci jako htmlspecialchars u nekontrolovatelných uživ. vstupů už chápu, ale tady půjde o vkládání dat administrátortem obsahující přímo HTML...


2) Občas se mi stane že text napsaný ve Wordu překopíruju do textarea, uložím do DB, a při následném výpisu se tam objeví jen kostičky... jde o nějaké nucené entyty které vytváří WORD, ale nechápe je můj prohlížeč. Jde nějakou funkcí tyto neběžné entyty podchytit a odmáznout, nebe lépe je nahradit vhodnou HTML entytou?

3) Existuje nějaká automatická PHP funkce na nahrazování "těchto" uvozovek těmi „českými uvozovkami“?
Keeehi
Profil
1) Do databáze vždy surová data. Encodovat entity až na výpisu, pokud je to třeba (právě třeba ty vstupy od uživatele)

Znaky < a > se encodovat musejí. Ostatní mohou být přímo v textu.

2) Nepíš to ve Wordu. Nasaď si nějaký editor přímo do stránky. Navíc ti to bude řešit i správné encodování z 1)

3) Nevím o žádné. V prostém textu by to šlo jednoduše s preg_replace, ale v HTML kódu ne, protože tam je třeba řešit kontexty.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: