Autor | Zpráva | ||
---|---|---|---|
Silver8000 Profil |
#1 · Zasláno: 18. 3. 2017, 16:36:25
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. |
||
Časová prodleva: 8 dní
|
|||
Silver8000 Profil |
#2 · Zasláno: 27. 3. 2017, 05:16:52
Tak to potrebne sestaveni mam zde : Cislo->String
Pokud je tam chyba tak me prosim upozornete. 1<?php <?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);
?> |
||
Časová prodleva: 8 let
|
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