[ robi_bobi @ 22.03.2004. 09:58 ] @
Pozdrav svima

Trebam uraditi funkciju koja proverava dali se uneti string sastoji od cirilicnih slova. Na php.net-u nalazim samo funkcije za konvertovanje iz lednog u drugi cirilicni format. a meni treba drugo... Jel neko ima ideju kako to da izvedem. Mozda convert_to_utf pa onda da proveravam utf kodove? (to mi je sad palo na pamet)

ajde ljudi pomagajte
hvala
[ broker @ 22.03.2004. 12:21 ] @
Podesis da je dokument u UTF kodnoj strani tako da ta kod korsinik da ukuca to je u UTF a onda zaista moras proveriti da li kod svakog znaka pripada grupi cirilicnih znakova.

Pedja

[ robi_bobi @ 22.03.2004. 14:32 ] @
hvala
[ -zombie- @ 23.03.2004. 06:33 ] @
Citat:
broker:
Podesis da je dokument u UTF kodnoj strani tako da ta kod korsinik da ukuca to je u UTF a onda zaista moras proveriti da li kod svakog znaka pripada grupi cirilicnih znakova.


hm.. pošto će koristiti UTF (hint: jedan karakter, više bajtova), ova provera "znakova" se može zakomplikovati..

ajde prvo napiši šta tačno želiš da radiš sa ćiriličnim slovima (da li da ih brišeš, pretvaraš u latinicu ili ostavljaš njih a brišeš/pretvaraš sve ostalo?), pa da smišljamo kako da to izvedeš..
[ s-o-n-i-c @ 23.03.2004. 12:49 ] @
Ako ti trebaju ćirilična slova da bi ih samo prikazao a ne konvertovao, mislim da ne moraš nikakve akrobacija da radiš. Podesi da je strana koja prihvata (gde je forma) utf 8, i strana koja izvršava skript koji puni u bazu (u mom slucaju mysql) takođe utf8 i strana koja prikazuje takođe utf8 i na istoj strani možeš da unosiš i prikazuješ paralelno ćirilicu, arapski i kineski...
[ robi_bobi @ 23.03.2004. 13:30 ] @
Znachi da malo pojasnim
Treba mi upravo to sto sam i napisao. Jednom klijentu treba takva funkcija. Funkcija koja ce proveravati dali je string sachinjen samo od cirilice. Za sada mi predlog broker-a izgleda dobro (josh nisam probao njegov predlog, verovatno cu sutra). Inache mislim da ce mozda i sledece pomoci:
Code:

$new = iconv("UTF-8", "UTF-8", $old);
if ($new == $old) 
    //$old je u UTF-8


sad ono sto mene zanima je kako proveriti da li je odredjeni utf kod (slovo) - cirilicno?
[ -zombie- @ 23.03.2004. 15:03 ] @
pa nisi baš napisao da ti treba da proveriš da su svi karakteri u stringu ćirilični.. zato sam i pitao..

no, sa brokerovim predlogom ćeš se verovatno pomučiti, jer php ne podržava unikod (po defaultu, tj ako se ne uključi multibyte string opcija), a "ručno" proveravanje za ćirilicu nije trivijalno..

ali ti može pomoći ovaj regex, sa u (unicode) modifierom .

Code:

$text = "neki tekst na ćirilici (ES prevodi na latinicu).";
if (preg_match('~^[a-šA-Š]*$~su', $text)) {
    // jeste ćirilica..
}


obrati pažnju da slova a-š i A-Š u regularnom izrazu budu na ćirilici (opet ES prevodi), i ceo php fajl snimi kao utf-8..
[ robi_bobi @ 23.03.2004. 15:12 ] @
hvala na upornom pomaganju :)
(i gledacu da ubuduce bolje opiujem situaciju)

mislim da mi to nece puno pomoci posto trebam proveriti za bilo koji cirilicni znak:
npr: я, ю, š, Đ, Š, Ž ...

a sa druge strane nisam siguran da su sva slova poredjana kako meni treba ...

npr ako pokusam da odradim tu varijantu, onda moram u preg ubaciti sva slova
jel ima neko mozda pregled (sajt) kako su poredjana kad ih preg uporedjuje jer poslednje slovo bugarske azbuke je я, poslednje srpske š ....

[ Goran Rakić @ 23.03.2004. 15:50 ] @
www.unicode.org
gucharmap iz Gnome-a

[ -zombie- @ 23.03.2004. 16:00 ] @
eto, opet nisi rekao da te interesuju i druge ćirilice osim srpske.. ;)

najbolje je da odeš na www.unicode.org i pogledaš sam gde su sva slova koja te interesuju.. tj konkretno pogledaj ovaj pdf http://www.unicode.org/charts/PDF/U0400.pdf, a možda ti zatreba i ovaj http://www.unicode.org/charts/PDF/U0500.pdf (mada sumnjam).

na sreću, pošto su sva ćirilična slova grupisana, možeš ih verovatno obuhvatiti jednim segmentom tipa a-š..
[ broker @ 23.03.2004. 16:38 ] @
robi_bobi, pogledaj http://ult.datavoyage.com/ . To j ebiblioteka za konverziju iz cirilice ulatinicu. Kao takvo ti nije od koristi ali u sorsu ces naci listu svih znakova srpske cirilice. Uz malo dorade mozes jeprosiriti i oslaim cirilicnim znacima i upotrebiti za proveru.

Znam, da to nije najbolje resenje, ali dok ne iskopas bolje, posluzice ti da radis posao.

Zombie, sta mislis pod tim da PHP ne radi za UTF?