[ 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?
[ -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.