Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Merkkien lisääminen stringin keskelle

Erkkimon [19.09.2010 03:45:07]

#

Pitäisi saada randomin pituisesta numerostringistä 16-merkkinen siten, että esimerkiksi 7. numeron perään lisätään nollia niin pitkään, että stringi on 16-merkkinen. Loppuun osaisin lisäillä nollia helpostikin, mutta miten mahtaa homma onnistua, kun nollat pitäisi saada esimerkiksi numerostringin kahdeksanneksi numeroksi?

Esimerkiksi 123456789 pitäisi saada muotoon 1234567000000089.

Chiman [19.09.2010 09:19:48]

#

PHP ilmeisesti kyseessä. Laske stringin pituus (strlen), paloittele se sopivasta kohdasta (substr), luo nollastringi (str_repeat) ja yhdistä palaset.

Grez [19.09.2010 10:52:36]

#

Muista sitten, että Osuuspankkien yms. tileissä pitää tulla 7 numeroa ennen nollia.

<?php
$tclen = strlen($tilicleaned);
if ($tclen<14) {
    $tilicleaned = substr($tilicleaned, 0, $fm->MLen) . substr('00000000',0,14-$tclen) . substr($tilicleaned, $fm->MLen);
}

Tuossa siis $tilicleaned on se merkkijono johon lisätään nollia, $fm->MLen sisältää tiedon, montako numeroa ensimmäiseen osaan tulee. Eli käytännössä 6 tai 7 pankista riippuen.

Erkkimon [20.09.2010 10:59:20]

#

Jees, johan alko pelittämään. substr() oli siis funktio, jota en ollu aiemmin tavannut, ja etsin ratkaisua mm. split-funktiosta. Kiitos!

Chiman [20.09.2010 11:11:42]

#

Tarjolla olevia funktioita ei voi oikein arvata, joten suosittelen lämpimästi selaamaan mm. kaikki PHP:n merkkijonofunktiot, jotta näkee mitä on tarjolla.

Niitä ei tarvitse muistaa ulkoa kerralla, mutta jos lukaisee kerran ajatuksella mitä mikäkin funktio tekee, voi jatkossa keksiä ratkaisun nopeasti. Sama pätee toki PHP:n koko manuaaliin ja laajemminkin ohjelmoinnissa.

Pieni vaivannäkö nyt, suuri hyöty jatkossa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta