Avramov bRlog
Web dnevnik Nemanje Avramovića

Avramov bRlog

Konverzija završena :)

avgust 23rd, 2007 . by Avram

Zahvaljujući Urketu, ja sam juče relativno uspešno migrirao sa bBloga na WordPress ali sam, kao što možete videti u prethodnom unosu, imao malih problema sa našim slovima. Danas sam seo i napisao dve skriptice, jedna služi za konverziju naših slova iz unosa sa bloga (postova) u utf-8 charset, a druga služi za konverziju naših slova iz komentara u utf-8 charset.

Kako ovo odraditi pitao sam i na ES-u, međutim, dobio sam savet od Brokera da iskoristim neku funkciju iz SMF foruma koju je on iskopao, ali mi se činila isuviše komplikovanom i isuviše “SMF-related” pa bih dosta vremena izgubio prepravljajući je da radi za moje potrebe. U početku sam mislio da ću to moći da rešim prostim:

  1. $dvobajtni = array("Å¡","Ä‘","ž","Ä","ć","ÄŒ","Ć","Å","Đ","Ž");
  2. $utfosam = array("š","đ","ž","č","ć","Č","Ć","Š","Đ","Ž");
  3. $post_content = str_replace($dvobajtni,$utfosam,$post_content);

Ovo mi, naravno, nije uspelo, jer da je to tako lako, svako bi mogao da bude PHP programer :) Posle sam, uz savete Flajka, pokušavao da uradim nešto uz pomoć ord/chr funkcija, ali mi nije uspelo, jer mi za sve dvobajtne karaktere ord funkcija vraća broj 195, a za utf-8 karaktere mi, za neke vraća 196 a za neke 197, tako da mi to i nije bilo baš od koristi. Na kraju sam pokušao da se poigram sa iconv setom funkcija, ali sam ubrzo odustao jer nemam iconv instaliran na serveru gde mi je blog. Onda sam naleteo na utf8_decode i utf8_encode funkcije, i pomislih da će mi utf8_encode rešiti probleme, ali NIŠTA nije uspešno konvertovala. Onako slučajno probam utf8_decode i ona mi uspešno konvertuje slova ž, š i č, dok za ostala - ništa.

Samo što sam rešio da odustanem, setim se da php ima neke multibyte funkcije! Odradim konverziju u lokalu, nad jednim stringom, uz pomoć funkcije mb_ereg_replace, i to sve lepo odradi! WOOHOO! Uploadujem skriptu na server, probam tamo - neće! Kaže nešto u fazonu invalid start of regular expression. Pokušam da dodam slash (/) ispred i iza dvobajtnih karaktera u pozivu te funkcije - neće. Pih, šta sad da radim? U lokalu radi ali na serveru neće. Pogledam malo PHP manual za tu funkciju i nađem poruku od nekog lika koji je napisao funkciju mb_str_ireplace. Probam sa tom funkcijom - radi! Odnosno radi sve osim slova ć, za koje mi je vraćao karakter č‡. Ovo sam rešio tako što sam pozvao još jednom mb_str_ireplace, kojim sam sve č‡ prebacio u ć, i to je to.

Ostavljam vam skripte ovde, ako neko slučajno poželi da pređe sa bBloga na WP, što nikako preporučujem, jer muke su to… :D Bolje je da odmah krenete sa WordPress-om.

Fajl u prilogu:
WordPress: Import iz bBloga i konverzija postova i komentara

 

Ostavite komentar:

Ime

Email (biće skriven)

Web sajt (ili OpenID provajder)