Pentiums Posted March 12, 2009 Report Share Posted March 12, 2009 Labdien! Ir te tāds skriptiņš, kas atklāj pareizi uzminētos burtus vārdā, nu līdzīgi kā Lingo spēlītē. <?php function lv_strtoupper($str) { $l=array('a','ā','b','c','č','d','e','ē','f','g','ģ','h','i','ī','j','k','ķ','l','ļ','m','n','ņ','o','p','r','s','š','t','u','ū','v','z','ž','ō','ŗ','x','q','w','y'); $u=array('A','Ā','B','C','Č','D','E','Ē','F','G','Ģ','H','I','Ī','J','K','Ķ','L','Ļ','M','N','Ņ','O','P','R','S','Š','T','U','Ū','V','Z','Ž','Ō','Ŗ','X','Q','W','Y'); return str_replace($l,$u,$str); } $atbilde = 'Jānis Riktīgais'; //15 simboli $mana_atbilde = 'Jānis Riekstiņš'; $word = trim(lv_strtoupper($atbilde)); $all_letters = lv_strtoupper($mana_atbilde).' -+.,;!?%&0123456789'; echo strlen($word); //Jābūt 15 for($x=0; $x < strlen($word); $x++) { if(strstr($all_letters, $word[$x])) { if($word[$x]==" ") { $word_line.=" "; } else { $word_line.=$word[$x]; } } else { $word_line.='_<font size=1> </font>'; } } echo '<br><br>'; echo $word_line; ?> Tātad, uz ANSI viss ir čikiniekā! Bet man tākā vajadzētu to visu iedarbināt uz UTF-8 enkodinga! Tātad problēmas ar garumzīmēm un mīkstinājuma zīmēm, uz utf-8 viņš izskaita ka frāzē ir 17 simboli nevis 15, un ja uz utf-8 es strlen aizstāju ar mb_strlen('...', 'utf-8') un strstr ar mb_strstr('...', 'utf-8') garumzīmju vietā rādas ķeburi bet izskaitīt viņš izskaita ka ir 15!!! :( Gaidīšu jūsu atsauces kā atrisināt šo problēmu. Quote Link to comment Share on other sites More sharing options...
bubu Posted March 12, 2009 Report Share Posted March 12, 2009 Visa problēma ir šeit: $word[$x] - tu nevari multibyte stringā izvilkt čaraketru šādi. Jo tas izvilks tikai 1 baitu, bet utf-8 gadījumā čarakters var gadīties vairāki baiti. Man šāds kods izvada korektu outputu: http://paste.php.lv/d585ad56d9054dca5e5213...a14a62?lang=php Quote Link to comment Share on other sites More sharing options...
Pentiums Posted March 12, 2009 Author Report Share Posted March 12, 2009 mmm.. tagad viņš izvada "JĀNIS IKT_ _ _ IS" noraujot R Quote Link to comment Share on other sites More sharing options...
bubu Posted March 12, 2009 Report Share Posted March 12, 2009 Pamēģini vēlreiz - es brīdi iepriekš nomainīju paste.php.lv linku uz citādāku skriptu. Vienā vietā biju aizmirsis aizstāt $word[$x] ar $ch. Quote Link to comment Share on other sites More sharing options...
Pentiums Posted March 12, 2009 Author Report Share Posted March 12, 2009 Nuja, laikam par žiglu biju paķēris :) Paldies, tagad strādā korekti! Ļoti palīdzēji man! :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.