PHP funkce pro typografickou korekci

02.02.2007, 2:05
Poslední změna: 05.02.2007, 13:19
Tagy: PHP

Tak. Přestalo mě bavit psát ručně HTML entity. Věděl jsem, že to dřív nebo později přijde a že to budu muset nějak zautomatizovat, ale stále jsem se držel. Až dnes jsem si řekl dost.

Napsal jsem tedy v PHP jednoduchou funkci, která nahrazuje oblíbené zápisy správnými typografickými entitami. Zatím to zvládá výpustku, pomlčky a uvozovky, jak je vidět v následující tabulce.

zápisnáhradaentita
...…
--–
---—
""„“„“

Při nahrazování se přeskakují vnitřky HTML tagů a kontejnerů PRE a CODE. Snažil jsem se to napsat čitelně a rozšiřitelně, použil jsem klasický FSA. Nedělal jsem žádné PHP optimalizace, bylo by to zde celkem zbytečné, předpokládám použití této funkce před vložením textu do databáze, tedy jednou. Kód je public domain, jakékoliv použití je tedy povoleno.

Při této příležitosti jsem také konečně založil sekci tvorba, kam budu své výtvory postupně soustředit. Skript je zde ke stažení včetně kolorizované verze.

A ještě použití, i když věřím, že by na to každý přišel:

require_once('czechtypo.php');
$result = czechtypo($text);

Někdy ještě přidám nahrazování mezer za jednoslabičnými předložkami nedělitelnými mezerami a další korekce.

Update 5.2.2007: na řádku 87 byla celkem hloupá chyba, kvůli které funkce skončila na prvním výskytu znaku '0'. Opraveno.

87c87
<       while ($token = readtoken($text, $i))
---
>       while (($token = readtoken($text, $i)) != '')

Komentáře

Žádné komentáře
Přidat komentář
Odpovídáte na komentář .
Vaše stránka. Nepovinné.
**tučné** //skloňené// ''kód''
* seznam pol. 1
* seznam pol. 2
  * vnořený seznam
# číslovaný seznam
{{{
předformátovaný text
}}}
[[http://devl.cz link]]