bra Posted June 13, 2006 Report Share Posted June 13, 2006 Man ir radusies diazgan intersanta problēma. tātad ir manīgais kura vērtība ir piemēram TB 21034 un vajag panākt lai šim manīgajam var pieskaitīt +1 un tā vērība palielinās uz TB 21035, bet tā lielākā problēma slēpjas apstāki ka es nevaru paedzēt kāda būs tā neciparikā daļā, īsāk sakot tas ko vēlos ir atdalīt cipraisko no necipriskās daļas un tad pieskaitīt +1 un tad atkal to visu salikt kopā... Ir kādas idejas? Paldies Link to comment Share on other sites More sharing options...
v3rb0 Posted June 13, 2006 Report Share Posted June 13, 2006 bet atstarpe starp TB un cipariem vienmēr būs? Link to comment Share on other sites More sharing options...
bra Posted June 13, 2006 Author Report Share Posted June 13, 2006 tur jau tā lieta ka navgarantija ka būs atstarpe varbūt būs vabūt nē varbūt būs / vai kas talīdzīgs tādēļ jau tāda sāpe Link to comment Share on other sites More sharing options...
v3rb0 Posted June 13, 2006 Report Share Posted June 13, 2006 burti būs vienmēr stringa sākumā? Link to comment Share on other sites More sharing options...
Delfins Posted June 13, 2006 Report Share Posted June 13, 2006 (edited) Vispirms ir jāzin kurā daļā būs burti, jo tad varēs uztaisīt preg_matchu... Ja tomēr formāts ir variabls ABC###DEF### ... tad ir jānodefinē kuru segmentu inkrementēt un tad arī ar pregu dabūt konkrētu.. Ja pieņemam, ka parasti inkrementē pēdējo segmenu (P/Z numurs),tad var darīt šitā preg_match( '/([\d]+)[^\d]*$/', $text, $m ); $cipars = (int) $m[1]; $jaunscipars = $cipars + 1; $new_text = preg_replace( '/('.$cipars.')([^\d])*$/', $jaunscipars.'\2', $text); PS: kods ir jāpielabo, jo neesmu to pārbaudījis Edited June 13, 2006 by Delfins Link to comment Share on other sites More sharing options...
litt Posted June 13, 2006 Report Share Posted June 13, 2006 Risinājums cherez zh, performance 0, bet tomēr... 1. ej cauri stringam, ņem pa vienam simbolam 2. ja simbols nav cipars, tad liec/papildini mainīgo $str 3. ja simbols ir cipars, tad liec/papildini mainīgo $num 4. kad esi izgājis cauri stringam, tad veic vajadzīgās darbības ar $num 5. rezlutātā savieno $str . $num Ja arī beigās var būt burti, tad ievies mainīgo $str2 un to aizpildi, ja $num nav null Link to comment Share on other sites More sharing options...
bubu Posted June 13, 2006 Report Share Posted June 13, 2006 litt: tad jau iznāk, ka stringā "abc123def456gh7" tiks atrasts skaitlis 1234567. Nedomāju, ka tas ir vajadzīgs. Tad jau vienkāršāk ar kautkādu pregu: /\d+/ Link to comment Share on other sites More sharing options...
litt Posted June 13, 2006 Report Share Posted June 13, 2006 bubu: tad dinamiski taisam $num2, $num3... Ja strings ir tāds, kā Tu norādīji un nav absolūti nekādi nosacījumi, kuru daļu updeitot, utt, tad tādu fīču realizēt NAV iespējams Link to comment Share on other sites More sharing options...
bubu Posted June 13, 2006 Report Share Posted June 13, 2006 Un ar ko tavs variants ir labāks par parastu preg_replace (vai preg_replace_callback) un /\d+\ ? Link to comment Share on other sites More sharing options...
Recommended Posts