Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] tworzenie katalogow
Forum PHP.pl > Forum > Przedszkole
mefjiu
Witam chciałbym napisać skrypcik który będzie tworzył katalogi pobierając dane z pliku dane.txt

plik ten wygląda następująco.

sdfsdfsd
sdf43sdf
dfsfertsd3
44eerf
dfs45rt5gw
rf54tef

Dane oddzielone enterami

Natopmiast skrypt php wygląda tak
  1. <?
  2. @ $wp = fopen("dane.txt",'r');
  3. if (!wp)
  4. {
  5. echo "blad otwarcia pliku";
  6. }
  7. while(!feof($wp))
  8. {
  9. $dane = fgets($wp, 999);
  10. mkdir($dane, 0777);
  11. }
  12. fclose($wp);
  13.  
  14. ?>



Problem polega na tym że tworzy tylko pierwszy katalog z listy natomiast potem sypie błędami

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 11

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 11

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 11

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 11

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 11
Cienki1980
Zamiast używać fopen skorzystaj z file" title="Zobacz w manualu PHP" target="_manual a w wyniku dostaniesz tablicę, gdzie każdy element tablicy będzie zawierał kolejną linijkę z pliku.
Wtedy będzie Ci łatwiej to stworzyć ...

Acha pamiętaj o trim() na każdym wierszu ( elemencie tablicy )
mefjiu
przerobiłem to tak jak mówiłeś i dalej to samo

  1. <?
  2. $lines = file('dane.txt');
  3. foreach ($lines as $line_num => $line) {
  4. $trimmed = trim($line, " n.");
  5. mkdir($trimmed, 0777);
  6. }
  7. ?>



błędy
Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 5

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 5

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 5

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 5

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Program Files\WebServ\httpd\test.php on line 5

Warning: mkdir() [function.mkdir]: File exists in C:\Program Files\WebServ\httpd\test.php on line 5
nospor
nie: $trimmed = trim($line, " \n.");
a: $trimmed = trim($line);
Widze ze masz winde a ta ma inne znaki konca wiersza niz \n. Dlatego lepiej usuwac wszystkie biale znaki
mefjiu
działa dziękuję pięknie :-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.