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
$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
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
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: Dobře, mínus 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
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
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
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.

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:

0