vbz Posted March 24, 2005 Report Posted March 24, 2005 kodeejums UTF-8 nestraadaa basic string functions Ko dariit, ja nevar piesleegt Multi byte funkcions Vajag pirmo burtu no stringa, piem, četri simti.... Vajag Č,
Kavacky Posted March 24, 2005 Report Posted March 24, 2005 $string = 'čābīgi'; // ko vien vajag $char = substr($string, 0, 2); // atgriež 'č' echo $char; Katram simbolam ir atvēlēti 2 baiti, tātad substr length jāņem 2x garāks nekā vajadzīgās daļas redzamo simbolu skaits.
bubu Posted March 25, 2005 Report Posted March 25, 2005 Katram simbolam ir atvēlēti 2 baiti...Muļķības! UTF-8 viens simbols var aizņemt sākot no 1 līdz pat 4 baitiem. Tāpēc to jau sauc par multibyte kodējumu.
Kavacky Posted March 25, 2005 Report Posted March 25, 2005 Ļoti atvainojos, nezināju. Vismaz līdz šim neatceros, ka būtu gadījies vairāk par 2.
Delfins Posted March 29, 2005 Report Posted March 29, 2005 Ļoti atvainojos, nezināju. Vismaz līdz šim neatceros, ka būtu gadījies vairāk par 2. 15572[/snapback] lietojam mb_* funkcijas (attiecīgi extension vajag pielikt..)
Kavacky Posted March 29, 2005 Report Posted March 29, 2005 lietojam mb_* funkcijas (attiecīgi extension vajag pielikt..)Un ja nevar pielikt?Ko dariit, ja nevar piesleegt Multi byte funkcions
Delfins Posted March 29, 2005 Report Posted March 29, 2005 Tad pāriet uz citu hostētāju. 15732[/snapback] bija kaut kur funkcija ( EN,LV,RU -> UTF ) konvertācijai, bet tādas lai UTF upercase taisiitu nezinu... paskaties mb_* extension sourci... :)
vbz Posted March 29, 2005 Author Report Posted March 29, 2005 Nu vispirms jau probleema ar strtoupper ( string string), to vareetu aizstaat ar: function uppercase_lv($cString){ $arrTrans_LV = array('ā' => 'Ā', 'č' => 'Č'); // utt. return strtr(strtoupper (trim($cString)), $arrTrans_LV); } nu kaut ka taa bet pirmo burtu, lieta taada, ka tas vajadziigs, lai summu ar cipariem paarveerstu par summu ar vaardiem, piem., 40298.98 -> četrdesmit tuukstoshi divisimti devinjdesmit astonji lati 98 santiimi. Lai pirmo burtu dabuutu(strings dinamisks ...) nu nekaadiigi ar pamatfunkcijaam string nevar. Doma, bet es neesmu specs regexpr, -> ereg_replace() vai perl sintakses funkcija preg_replace(); Pagaidaam esmu atstaajis kaa ir, tapeec, ka digits tikai viens saakas ar lv alfabeeta burtu :) .
Venom Posted March 30, 2005 Report Posted March 30, 2005 nesaprotu kur tev vajaga lasīt vārdu burtus kad tev jālasa cipari, pie tam pie cipara vēršoties kā pie char masīva. T.i. ja $str='80.23' tad $str[0] ir 8, $str[1]=0 utt. visāda gadījumā var apskatīties http://paste.php.lv/1794
vbz Posted April 1, 2005 Author Report Posted April 1, 2005 pie tam pie cipara vēršoties kā pie char masīva. T.i. ja $str='80.23' tad $str[0] ir 8, $str[1]=0 utt.visāda gadījumā var apskatīties http://paste.php.lv/1794 15764[/snapback] Paldies Venom! Nu tieshi taa, paskatoties paste scriptu, taa doma tieshi taada pati, tikai mans algoritms ir 2x lielaaks :) . No saakuma es no cipariem uztaisu ciparus ar vaardiem un tad gribu ieguuto string pirmo burtu paartaisiit par uppercase. Tev arii masiivaa glabaajas ar mazajiem burtiem. Bet paldies, ka noraadiiji par char[n], es tikai apm. 6 meen. ar PHP, nekur tas manuaalii nav rakstiits, ka PHP string var apstraadaat liidziigi kaa C (varbuut shvaki lasu!). Tagad principaa es varu iznjeemuma gadiijumu pielikt, ka if($digits[0] == '4') $digits[0] = 'Ch'; , kas arii nav diezgan racionaali'. p.s.Atvainojos, ka pacelju vecus topics
bubu Posted April 2, 2005 Report Posted April 2, 2005 Nav labi lietot $char[0] sintaksi, to jālieto masīviem. Stringiem jālietot $char{0} sintaksi: http://lv.php.net/manual/en/language.types...s.string.substr
Recommended Posts