Autor Zpráva
Mesiah
Profil
Zdravicko,
zajimalo by me, jak se pracuje s adreri na windowsech?
naprklad pokousim se vytvorit adresarovou strukturu:
/picture_product/skupina/kategorie/22/
bohuzel php na mě vychrlí:
Warning: mkdir() [function.mkdir]: No such file or directory in C:\Web\www\eshop\help\pokus.php on line 4

k vytvoreni struktury pouzivam:
<?php
echo getcwd() . "\n";
$cesta = "\picture_product";
      if ( mkdir($cesta) )
      {
        echo "cesta je vpoho.";
      }
      else
      {
        echo "ee, to by neslo.";
      }
?>

Poradite mi, kde je chyba?
AM_
Profil
nejsem si jisty, ale jestli mas zapnuty open_basedir na c:\web nebo tak neco, nemuzes vytvaret adresare v korenovem adresari (c:\picture_product)
Mastodont
Profil
$cesta = "\picture_product";

1) Na Windows není nutné používat backslash.
2) Zkus to s apostrofy namísto uvozovek.
Mesiah
Profil
tak jsem patral a nasel jsem tohle:
p-garcia at uniandes dot edu dot co
22-Jan-2008 02:45
After a long time trying to catch the cause of the warning: "mkdir() [function.mkdir]: No such file or directory", I finally realized that this function is not recursive; I mean, that if you want to create the folder -for example- c:\temp\t1\t2, you must do:
mkdir("c:\\temp\\t1") ;
mkdir("c:\\temp\\t1\\t2") ;

because mkdir is not like the windows mkdir where you can acomplish this in one single step.

a muzu potvrdit, opravdu to funguje. :)
trebas takhle:
echo getcwd() . "<br />\n";
mkdir(getcwd()."\\pokus1");
mkdir(getcwd()."\\pokus1\\pokus2");
AM_
Profil
1) Na Windows není nutné používat backslash.
jen drobná poznámka pro úplnost - tohle tvrzení je krajně zavádějící, pokud uvedeš na začátku backslash, znamená to kořenový adresář na současném disku, pokud ne, je to relativní cesta vzhledem k aktuálnímu pracovnímu adresáři. Na linuxu je to stejně (akorát se používá klasické lomítko), takže v tom ani není nějaký rozdíl (akorát v linuxu je kořenový adresář '/' jeden pro celý systém, ne jako na windows, kde má každý disk svůj, ale to je asi všem známo).

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: