Autor Zpráva
OldřichSitko
Profil *
Jak udělat script, který mě vždy při dosažení tisícího čísla vytvoří složku:
/1000/
/2000/
/3000/
....
Amunak
Profil
if($cislo % 1000 == 0 && $cislo > 0)
  mkdir('/' . $cislo);
OldřichSitko
Profil *
A když budu chtít zpětně zjistit do jaké složky ID patří, zjistím to jednoduše jak? Budu mít řekněmě číslo 5 a to bude patřit do složky 0. Budu mít číslo 1450 ... bude patřit už do složky 1000
DJ Miky
Profil
Vydělíš číslo tisícem a zaokrouhlíš dolů, tedy:
$slozka = floor($cislo / 1000);

Mimochodem, na začátku mkdir() Amunakova příkladu zřejmě nemá být lomítko, jinak se adresář bude vytvářet v kořenovém adresáři, což v 99 % případů není žádoucí. Pro vytvoření v aktuálním adresáři by tam mělo být './'.
Amunak
Profil
DJ Miky:
Pro vytvoření v aktuálním adresáři by tam mělo být './'.
anebo tam nemusí být nic. Já to tak původně měl, ale chtěl jsem
1) ilustrovat složení cesty
2) mít to přesně podle zadání (kde to lomítko na začátku je)
OldřichSitko
Profil *
Mockrát děkuji za výpomoc.

Nyní se složky vytváří, ale existuje i zpětná kontrola? Tj. pokud složka neexistuje, tak se tvoří ?
DJ Miky
Profil
Existenci můžeš kontrolovat pomocí funkce is_dir(). Ta vrátí false, pokud daný adresář neexistuje. V tom případě ji můžeš vytvořit.
OldřichSitko
Profil *
Tak bohužel jsem zjistil chybu. Pokud $cislo bude v rozmezí 0 - 999, tak to nebude fungovat a u tohoto čísla potřebuji udělat podmínku také. Nyní podmínka funguje pouze nad 1000.
if($cislo % 1000 == 0 && $cislo > 0)
Micruss
Profil
a co
<?php
if($cislo % 1000 == 0 && $cislo > 0) { 
//... 1000 a výše
 }
else  { // super_tajný_kod_pod_1000 
}
Amunak
Profil
Micruss:
to dělá něco úplně jiného, než co čekáš (myslím)

OldřichSitko:
Tak tam dej >= místo >, nebo tu druhou část podmínky odmaž úplně. Dal jsem to tam proto, abych nemusel řešit, že budeš mít adresář 0 místo 0000. Ale nebyl by problém ten zbytek doplnit něčím jako str_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