Autor Zpráva
Mufna
Profil
Zdravím Vás. Asi to je jednoduchý, no já na to nějak dneska ne a ne kápnout. Potřeboval bych cyklus, který zkontroluje podmínku (existenci či neexistenci souboru). Pokud soubor existuje, tak se bude generovat jiný název (náhodný řetězec znaků). Tohle se má opakovat tak dlouho, dokud platí, že soubor daného názvu již existuje. Jakmile už je vygenerovaný řetězec jedinečný (resp. žádný soubor takového názvu neexistuje), cyklus končí a poslední řetězec náhodných znaků se použije jako název nově ukládaného souboru.

Nějak mi to celé prostě nejde dát do kupy, zatím jsem si udělal jen provizorní podmínku, že pokud název (a tedy i soubor) již existují, tak se k náhodnému řetězci znaků přidá "rozlišovací znak". Jenže tohle samozřejmě bude fungovat jen jednou. Prosím poraďte jak z toho udělat nějaký cyklus, v němž, pokud platí podmínka, se bude vždy generovat jiný řetězec znaků.

$new_filename = genRandomString();

if (file_exists($images_dir.'/'.$new_filename)) {
   $new_filename.='-1'; 
}
Alphard
Profil
do
{
  $filename = genRandomString();
} while (file_exists($filename))

S rostoucím množstvím obsazených jmen bude stálě těžší najít nějaký volný název. Asi by bylo lepší s každou smyčkou iterovat proměnnou, která se bude přidávat k názvu.

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