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.

1<?php
2/*
3po zkouknuti kodu : https://github.com/loader/kvzlib/blob/master/php/functions/alphaID.inc.php
4a mensi uprave jsem vytvoril tento kod
5*/
6        // Digital number  -->>  alphabet letter code
7        $code_id = 1;
8        $code_length = 8;
9        $characters_range = array_merge(range('A','Z'), range(0,9));
10        $characters_count  = count($characters_range);
11        $code_max_id = bcpow($characters_count, $code_length);
12        echo $code_max_id;
13        echo "\n";
14        for($length=($code_length-1);$length>=0;$length--){
15            $possition = floor($code_id / bcpow($characters_count, $length));
16            $code_id = $code_id - ($possition * bcpow($characters_count, $length));
17            $character_keys[] = $characters_range[$possition];
18        }
19        print_r($character_keys);
20?>
<?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);
?>
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0