Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
PHP okénko: Zkrácení textu s XHTML značkami

gapon
gapon (neregistrovaný)
20. 6. 2005 8:52 Nový

procházení po znacích...

celé vlákno
nebude podle mne nejrychlejší... spíš naopak
Ondrej Ivanic
Ondrej Ivanic (neregistrovaný)
20. 6. 2005 9:12 Nový

to fungovat spolahlivo nebude

celé vlákno
Vsetky priklady su napisane pre znakove sady ako iso-8859-* t.j. jednobajtove. Pri unicode resp. kodovaniach ako utf-8 bude vysledok velmy zly.

rieseni je viac:
1) prepisanie kodov
2) pouzitie extenzie mbstring a nastavenie mbstring.func_overload

prepisanie prikladov je asi najrozumnejsie, lebo s konstrukciu $s{$i} sa uz spravit nic neda :(. Tam kde sa ale nepouzie staci mbstring.
Jakub Vrána aura:61
20. 6. 2005 9:42 Nový

Re: to fungovat spolahlivo nebude

celé vlákno
Dobrá připomínka. Další možností je počkat na další velkou verzi PHP, která bude podporu Unicode obsahovat, takže $s{$i} bude fungovat i s UTF-8. Na tu si ale ještě nějaký ten měsíc nebo rok počkáme...
Jirka Kosek
Jirka Kosek (neregistrovaný)
20. 6. 2005 10:14 Nový

Re: to fungovat spolahlivo nebude

celé vlákno
Na to bych moc nespoléhal. Podpora Unicode měla být v PHP již na přelomu let 2001/2002, a stále nic. Ale třeba se vývojáři konečně pochlapí a začlení ICU do PHP.
Ondrej Ivanic
Ondrej Ivanic (neregistrovaný)
20. 6. 2005 10:39 Nový

Re: to fungovat spolahlivo nebude

celé vlákno
Presne tak, teraz sa pracuje na zacleneni ICU [1] do PHP. Ocakava sa to vo verzii 5.5 alebo 6.0.

[1] http://icu.sourceforge.net/
Ondrej Ivanic
Ondrej Ivanic (neregistrovaný)
20. 6. 2005 10:39 Nový

Re: to fungovat spolahlivo nebude

celé vlákno
Presne tak, teraz sa pracuje na zacleneni ICU [1] do PHP. Ocakava sa to vo verzii 5.5 alebo 6.0.

[1] http://icu.sourceforge.net/
Ondrej Ivanic
Ondrej Ivanic (neregistrovaný)
20. 6. 2005 10:40 Nový

Re: to fungovat spolahlivo nebude

celé vlákno
Presne tak, teraz sa pracuje na zacleneni ICU [1] do PHP. Ocakava sa to vo verzii 5.5 alebo 6.0.

[1] http://icu.sourceforge.net/
Jakub Vrána aura:61
20. 6. 2005 13:33 Nový

Re: to fungovat spolahlivo nebude

celé vlákno
Podpora Unicode má být hlavní novinka další velké verze, takže se snad opravdu dočkáme. ICU se má do hlavní vývojové větve (HEAD) dostat hned po vypuštění PHP 5.1, více o tématu se dá získat ve slidech odkazovaných v odkazovaném článků.
Mormegil
20. 6. 2005 17:20 Nový

Kdyby jenom Unicode

celé vlákno
Problémů je tady výrazně víc. Největším je IMHO chování u věcí typu
<tag atribut="5 > 3">tralala</tag>
Jakub Vrána aura:61
20. 6. 2005 18:00 Nový

Re: Kdyby jenom Unicode

celé vlákno

Máte pravdu. Žil jsem v domnění, že speciální znaky je nutné escapovat i uvnitř hodnot atributů. Nedostatek by měl vyřešit následující kód

$in_quote = '';
while ($i < strlen($s) && ($in_quote || $s{$i} != '>')) {
    if (($s{$i} == '"' || $s{$i} == "'") && !$in_quote) {
        $in_quote = $s{$i};
    } elseif ($in_quote == $s{$i}) {
        $in_quote = '';
    }
    $i++;
}

místo původního

while ($i < strlen($s) && $s{$i} != '>') {
    $i++;
}

Všiml jste si ještě něčeho problematického?

Jakub Vrána aura:61
21. 6. 2005 10:46 Nový

Re: to fungovat spolahlivo nebude

celé vlákno

U UTF-8 je díky šikovnému návrhu možné zůstat u bajtového přístupu a část

default:
    $length++;

stačí nahradit za

default:
    $length++;
    while ($i+1 < strlen($s) && ord($s{$i+1}) > 127 && ord($s{$i+1}) < 192) {
        $i++;
    }
Daniel
Daniel (neregistrovaný)
20. 6. 2005 20:42 Nový

promakanejsi obdoba pro JavaScript

celé vlákno
Delam client-side JS aplikace - a tak jsem si napsal kompresor pro JS kod. Jedina vlastnost je, ze vstupni kod musi byt validni, tj psat:

if (neco) { neco; }; // <- hlavne tady ten posledni strednik

(stejne v if/else,try/catch,while,for)

Odkaz na zdroj je:
http://waf.rozsnyo.com/source/?file=%2Fscript%2Fclass.jsCompress.inc.php

Ukazka pouziti:
http://waf.rozsnyo.com/script/
vs.
http://waf.rozsnyo.com/script/?compress

Dela to "kompresi" 1:2 (odstraneni mezer a poznamek), az v budoucnu naroste ten muj system tak pouziju realnou kompresi.

(btw. kdyby jste mel nekdo zajem spolupracovat, napiste maila)
Petr Krontorad
23. 6. 2005 7:42 Nový

Re: promakanejsi obdoba pro JavaScript

celé vlákno
nepis pro kompresi vlastni tridu, bude to stejne pomalejsi a navic nespolehlivy (viz ty pridavne podminky pro ";" apod.). vyuzij toho, ze JS je stejne jako PHP C-derived a projed to token_get_all() funkci s odradkovani vsech prototypu (metod) a funkci po parsovani. je to na par radek a "zadarmo".
uživatel si přál zůstat v anonymitě
23. 6. 2005 22:37 Nový

Re: promakanejsi obdoba pro JavaScript

celé vlákno
vbrazda
vbrazda (neregistrovaný) ---.net.upcbroadband.cz
12. 11. 2010 11:53 Nový

Funkce tidy_repair_string()

celé vlákno
Zasílat nově přidané příspěvky e-mailem