Autor | Zpráva | ||
---|---|---|---|
jarks Profil |
#1 · Zasláno: 24. 7. 2009, 23:33:29 · Upravil/a: jarks
Dobrý den, snažím se zvýraznit výsledky vyhledávání textů v UTF8 takto:
1. $text = preg_replace("~$search~i", '<span class="search-result">\\0</span>', $text); ALE preg_replace není multibyte, má problémy s češtinou. Nenajde slova, která obsahují velká písmena s diakritikou, např. pokud text je "Šimáček" a hledá se "šimáček". Když se hledá přesně, to znamená "Šimáček", chytne se a označí. 2. $text = mb_eregi_replace($search, '<span class="search-result">'.$search.'</span>',$text, "i"); Chytne se vždy, ale převádí velikost písmen. Jestliže text je "Čermák" a hledá se "čermák", výsledek je označené "čermák". Pokud budu hledat "ČERMÁK", výsledkem bude označené ČERMÁK. Takže buď správná velikost písmen, ale nespolehlivé označování, nebo spolehlivé označování a zase špatná velikost písmen. Věděl by prosím někdo, co s tím? PHP: 5.2.9 Díky. |
||
karbon Profil * |
#2 · Zasláno: 25. 7. 2009, 13:47:13
Já bych si našel pozici toho slova přes strpos a pomocí strlen bych zvýrazňované slovo vyřízl a pak bych to spojil i se zvýrazňujícími tagy. Pokud bude těch slov ke zvýraznění víc, je nutné v strpos pracovat s nepovinným parametrem offset.
|
||
Časová prodleva: 15 let
|
0