Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?

[es] :: PHP :: kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?

[ Pregleda: 3252 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
212.200.25.*

Sajt: www.novikorisnik.net


+5 Profil

icon kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?08.03.2006. u 16:18 - pre 219 meseci
Jedno prosto pitanje - kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?

(... možda je i odgovor jednostavan, ali bih ga voleo videti svakako :-)
 
Odgovor na temu

tiranin
Dorćol

Član broj: 37185
Poruke: 245
..taman-bg.customer.sbb.co.yu.



Profil

icon Re: kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?08.03.2006. u 17:06 - pre 219 meseci
Pitanje nije prosto, jer bar meni nije do kraja jasno. Sta znaci utf8 enkodirani string?
String je niz karaktera is nekog skupa (tvoj alfabet), a utf8 enkodiranje je standard po kome se neki karakteri smestaju u 1 bajt, neki u 2, a neki u 3 bajta.
Ako je tvoj string skup karaktera, povadis karaktere, odradis varijacije od 3 elementa (2-3 petlje) i to je to. Ako te iz tvog stringa zanimaju bajtovi, onda pojedinacni bajt je mozda deo dvobajtnog utf8 karaktera, ne znaci nista, pa je glupo da s njim bilo sta radis.
Sta je tebi problem ? Substringovanje stringa koji ima utf8 karaktere, ili algoritam pravljenja varijacija od 3 ili vise elemenata ?
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?08.03.2006. u 17:31 - pre 219 meseci
Hm...
http://www.php.net/mbstring
npr.
Code:

mb_internal_encoding("UTF-8");
$string = 'ово Ñ˜Ðµ Ñ‚ест Ð±Ñ€Ðµ Ð°Ð°Ð° Ð°Ð°';
$word_array = split(' ',$string);
for ($i=0; $i<count($word_array); $i++) {
  if (mb_strlen($word_array[$i]) >= 3) {
    echo $word_array[$i].'<br />';
  }
}

Banned - Not available
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.ADSL.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?08.03.2006. u 21:51 - pre 219 meseci
Da, izgleda da bi moralo preko mbstringa, do toga sam i sam došao, ali još uvek nisam našao način kako da to efikasno rešim.

Recimo, probao sam...
Code:
preg_match_all ('/\w{3,}/', $string, $matches);

... i to je super, onaj rezultat koji mi treba, osim ako u igru ulaze i utf8 karakteri, recimo domaća latinica ili ćirilica ... onda ovo ne funkcioniše kako valja.

E sad, koliko razumem, mb_eregi kao i eregi vraća samo prvo nalaženje patterna, baš kao i preg_match, ali meni treba ponašanje kao za preg_match_all - znači svi rezultati u nizu.

Druga stvar je što ove funkcije izgleda ne priznaju foru "\w", a ja ne znam kako da predstavim skup svih mogućih karaktera koji bi da predstavljaju cifru ili slovo, ili sve one karaktere koje ne bi bili u tom skupu (beline, specijalni karakteri i šta još) ako bi koristio mb_split ...

(... postaviću ovo i na dpt, valjda bude neke koristi ...
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?09.03.2006. u 08:54 - pre 219 meseci
Citat:
noviKorisnik:

Code:
preg_match_all ('/\w{3,}/', $string, $matches);



Tvoj problem je u stvari sto \w ne radi za utf-8. U ovakvim slucajevima mozes da definises karaktere koji te zanimaju. Konkretno za cirilicu, radi se o unikod karakterima 0400-04FF, tako da ce ovo:

Code:

preg_match_all('/[\x{0400}-\x{04FF}]{3,}/u', $string, $matches);



raditi isto sto i ono sto si ti napisao, samo za cirilicu.
Hope this helps.

Never trust an operating system you don't have sources for.
 
Odgovor na temu

[es] :: PHP :: kako iz utf8 enkodiranog stringa napraviti niz svih reči od bar 3 karaktera?

[ Pregleda: 3252 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.