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.
PHP ilmeisesti kyseessä. Laske stringin pituus (strlen), paloittele se sopivasta kohdasta (substr), luo nollastringi (str_repeat) ja yhdistä palaset.
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.
Jees, johan alko pelittämään. substr() oli siis funktio, jota en ollu aiemmin tavannut, ja etsin ratkaisua mm. split-funktiosta. Kiitos!
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.