Autor Zpráva
Silver8000
Profil
ahoj vsem,
pred casem jsem vytvarel generator klicu ktery muze generovat nahodne nebo nasledne
a ted by me zajimalo jestly je jiny zpusob nez pouzitim cyklu aby se generoval klic podle vlozeneho ID.
Zakladni kod najdete zde : BaseCode
Priklad muzete najit zde : Example_Generate_ID
Uz jsem hledal snad vsude ale vetsinou jsem nachazel jak generovat klice nahodne.

Hlavni bod o ktery mi jde je misto cyklu pouzit neco jineho co bude rychlejsi pri generovani klicu.
Proc ? Protoze kdyz dam ID 1 000 000 tak to trva dlouho nez se generator prokouse cyklem a narazi na toto cislo,obzvlast kdyz kod pojede na nejakym hostingu ktery ma casovy limit 30 sekund a to i s tim ze v kodu je nastaven zadny limit.

Tady jeden z uzivatelu se zminil jak to pocitat kdyz string uz je sestaveny zajimalo by me jak tento proces obratit.
Momentalni sestaveni : String->Cislo
Potrebne sestaveni : Cislo->String
doufam ze je to dost srozumitelne.
Silver8000
Profil
Tak to potrebne sestaveni mam zde : Cislo->String
Pokud je tam chyba tak me prosim upozornete.

<?php
/*
po zkouknuti kodu : https://github.com/loader/kvzlib/blob/master/php/functions/alphaID.inc.php
a mensi uprave jsem vytvoril tento kod
*/
        // Digital number  -->>  alphabet letter code
        $code_id = 1;
        $code_length = 8;
        $characters_range = array_merge(range('A','Z'), range(0,9));
        $characters_count  = count($characters_range);
        $code_max_id = bcpow($characters_count, $code_length);
        echo $code_max_id;
        echo "\n";
        for($length=($code_length-1);$length>=0;$length--){
            $possition = floor($code_id / bcpow($characters_count, $length));
            $code_id = $code_id - ($possition * bcpow($characters_count, $length));
            $character_keys[] = $characters_range[$possition];
        }
        print_r($character_keys);
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: