Autor | Zpráva | ||
---|---|---|---|
fuckin Profil |
Ahojte,
Potřebuju vytvořit 5 úrovní složek v sobě. interval a-z a 0-9. Příklad struktury a/h/9/s/a/ nebo 9/5/g/z/a apod Prostě všechny možné variace. Já doufám, že to je pochopitelné. Mám zatím toto, chci první udělat něco ve stylu postupného vypisování. Tedy např 0,0,0,0,0 0,0,0,0,1 .. z,z,z,z,z for ($i = 48; $i <= 122; $i++) { if (($i < 58) or ($i > 96)) { echo chr($i); } } Tento skript mě vypíše 0-9 a a-z Zkoušel jsem for různě do sebe vnořovat ale pak tam byl problém s podmínkou, už fakt nevím. |
||
fajzen Profil |
#2 · Zasláno: 16. 1. 2010, 20:29:36
$chars = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); // znaky, ktoré sa majú použiť ako názvy priečinkov, mohli by to byť aj reťazce $indexes = array(0, 0, 0, 0, 0); // počet podpriečinkov define('CHARS_LENGTH', count($chars)); define('INDEXES_LENGTH', count($indexes)); $done = false; while(!$done) { $dir = '.'; for($i = 0; $i < INDEXES_LENGTH; $i++) { $dir .= '/' . $chars[$indexes[$i]]; } mkdir($dir, 0777, true); for($i = INDEXES_LENGTH - 1; $i >= 0; $i--) { if($indexes[$i] == CHARS_LENGTH - 1) { if($i > 0) { $indexes[$i] = 0; } else { $done = true; break; } } else { $indexes[$i]++; break; } } } Neviem, na čo to potrebuješ, ale upozorňujem, že pri piatich úrovniach podpriečinkov štandardne nastavených 30 sekúnd maximálneho behu skriptu rozhodne nebude stačiť |
||
Chamurappi Profil |
#3 · Zasláno: 16. 1. 2010, 20:36:34 · Upravil/a: Chamurappi
Reaguji na fuckina:
Nešlo by vypsat jedním cyklem čísla od 0 do 60466175 (36^5 − 1) v šestatřicítkové soustavě a proložit každé z nich lomítky? Reaguji na Petra ZZZ ↓: Žádné mínus 1, počet kombinací je přesně 36^5. Cyklus by ale jel od nuly, proto musí zastavit o jednu níž. |
||
Petr ZZZ Profil |
#4 · Zasláno: 16. 1. 2010, 20:42:50 · Upravil/a: Petr ZZZ
fuckin:
Rozumím tomu dobře? 36 znaků pětimístně libovolně kombinovaných, to by mělo být 36 na pátou, čili víc než 60 miliónů, přesně řečeno 60.466.176. Dodatek 1: Dodatek 2: Ano, chápu. Podobně jako 10^3=1000, ale když se bere i nula, tak to je 0-999 (1000 hodnot včetně nuly). |
||
fuckin Profil |
#5 · Zasláno: 16. 1. 2010, 20:59:19
Petr ZZZ:
Ano rozumíš. Chamurappi S tím lomítkem bych to viděl jako problém. Navrhuji dvojtečku. fajzen: Tak tomuto říkám parádní skript, fakt moc díky, strašně mně to pomohlo. |
||
Chamurappi Profil |
#6 · Zasláno: 16. 1. 2010, 21:14:43
Reaguji na fuckina:
„Navrhuji dvojtečku.“ To na principu nic nemění, ne? Pointa byla, že můžeš snadno dostat sekvenci požadovaných znaků, když si je představíš jako čísla z jiné soustavy. |
||
fuckin Profil |
#7 · Zasláno: 16. 1. 2010, 21:26:30
Chamurappi:
Ano, už mně to došlo. Po prvním přečtení jsem usoudil, že si ze mě děláš srandu. :-) Ano představil jsem si to. Velice teoreticky dobrý nápad. |
||
Časová prodleva: 14 let
|
0