[ ljtruba @ 13.02.2004. 09:40 ] @
Treba mi konvertor za UTF-8 kako bih mogao da sve naše karaktere pišem kao dvobajtne unicode znakove. Gde potraziti? |
[ ljtruba @ 13.02.2004. 09:40 ] @
[ -zombie- @ 15.02.2004. 16:53 ] @
ajde bolje objasni šta ti treba, pa ti neko možda i pomogne.
inače, svaki editor texta (koda) koji vredi $0.00 ili više bi morao da ima podršku za unicode i utf, pa samim tim i konverziju u/iz tih enkodinga.. [ ljtruba @ 16.02.2004. 00:17 ] @
Pravio sam WAP sajt na adresi www.hifi.co.yu/wap
poenta je bila da se vide i nasa slova, pa sam stavio UTF-8 i hteo nekako da ih iskonvertujem. Na kraju sam odustao jer kontam da ne podrzavaju svi telefoni nasa slova pa sam odradio sledece $sometext = str_replace ("è", "c", $sometext); $sometext = str_replace ("æ", "c", $sometext); itd i prakticno sam pobio kuke i kvake U svakom lsucaju ne bib ilo lose da odene na wap sajt i da mi kazete kako vas se svidZa [ bluesman @ 16.02.2004. 01:43 ] @
Možeš, ako već imaš site koji nećeš da prepravljaš, sa output buffering (pogledaj ob_start... ), pa pre nego što prikažeš sadržaj, uradiš replace. Evo recimo jedne proste funkcije koja menja naša slova u odgovarajuće kodove:
Code: function convert_2_utf8($contents) { $trans = array( "Š" => "Š", "Ž" => "Ž", "š" => "š", "ž" => "ž", "Ć" => "Ć", "ć" => "ć", "Č" => "Č", "č" => "č", "Đ" => "Đ", "đ" => "đ" ); return strtr ($contents, $trans); } pa recimo tvoj kod može da izgleda ovako Code: <?php ob_start(); // ovde ide sve sto se prikazije na strani $contents = ob_get_contents(); $contents = convert_2_utf8($contents) ob_end_clean(); echo $contents; ?> // namerno je pisano neoptimizovano da bi bilo razumljivije [ Dag @ 16.02.2004. 06:50 ] @
Citat: bluesman: Code: <?php ob_start(); // ovde ide sve sto se prikazije na strani $contents = ob_get_contents(); $contents = convert_2_utf8($contents) ob_end_clean(); echo $contents; ?> Da ne chitam sada o tom ob_start (chesto se srec'e)... koja je razlika izmedju tog koda gore i sledeceg: Code: $data=implode('',file($aUri));} $cyrillic=array('Sh', 'Ch', 'sh', 'ch'); $tliter=array('S', 'C', 's', 'c'); function &cyr2latru($string) { global $cyrillic,$tliter; return str_replace($cyrillic,$tliter,$string);} $str = cyr2latru($data); Tojest, verovatno izmedju $contents = ob_get_contents(); i $data=implode('',file($aUri));} i fali li uopshte ishta drugoj funkciji (donjoj). [Ovu poruku je menjao -zombie- dana 16.02.2004. u 13:15 GMT] [ -zombie- @ 16.02.2004. 11:13 ] @
nema neke razlike osim što je čitljivije napisana, pa samim tim i primerenija za postovanje na forumu (u edukativne svrhe).
sad ja tebe da pitam, koja je svrha postovanja tvoje (skoro ekvivalentne) funkcije? [ Dag @ 16.02.2004. 13:12 ] @
Citat: -zombie-: sad ja tebe da pitam, koja je svrha postovanja tvoje (skoro ekvivalentne) funkcije? Ama nikakva. Obrishi ako smeta. Interesovalo me samo: 1. Razlika imzedju implode i toga ob_get_content. 2. I buni me u funkciji "global $cyrillic,$tliter;" Ja taj global apsolutno nigde ne koristim i sve radi; koristim je iskljuchivo u konverterima jer bez toga nec'e. Svi su mi konverteri na njoj postrojeni a nekako sam pocheo da sumnjam u kvalitet takve funkcije (mada radi brzo i t. d.). Evo na primer ovde (i unicode i 1251 i t. d..) http://orwell.ru/info/tools/scon_01 [ bluesman @ 16.02.2004. 13:27 ] @
ob_ funkcije su output_buffering (sad bi ti neko dao link do odgovarajuce strane u PHP manualu, ali ja ih ne znam napamet, mozes i sam da pronadjes) i jednostavno ti omogucavaju da recimo posaljes header u toku pa i cak posle outputa.
Dakle, ako imas neki php script i ne znas codepage ili hoces da ga promenis tek po izvrsenju scripta (ne bas, ali recimo na kraju izvrsenja), jednostavno izvrsis ceo script sa svim echo, print... sta god, a tek na kraju sa ob_get_contents() uzmes ceo sadrzaj koji se nije jos uvek nigde prikazao jer si sa ob_start() startovao output buffering, i uradis sa njim sta god hoces... mozes tek onda na kraju da posaljes header-e Kada sa ob_end zavrsis output buffering, stranica se lepo prikaze kao i svi headeri i nece doci do one "cuvene" greske "cannot add header information output already started .. "... Dakle izmedju: $contents = ob_get_contents(); i $data=implode('',file($aUri));} stoje babe i zabe jer je pristup malo drugaciji, pa zato nema potrebe za raspravom jer su predlozena 2 resenja uvek bolja od jednog. [ Dag @ 16.02.2004. 13:46 ] @
Citat: bluesman: ob_ funkcije su output_buffering (sad bi ti neko dao link do odgovarajuce strane u PHP manualu, ali ja ih ne znam napamet, mozes i sam da pronadjes) i jednostavno ti omogucavaju da recimo posaljes header u toku pa i cak posle outputa. Ah koliko je to dobro. ne treba url, imam ja sve to samo je to bilo vazhno: algoritam (izgleda) isti ili slichan ali, kada hocesh da se igrash sa hederima, bolje ob_(xyz). Nisam ja stavio funkciju kao predlozheno reshenje: interesovala me samo razlika. Tnx. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|