Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z kasowaniem pliku.
Forum PHP.pl > Forum > Przedszkole
piotrek5402
Witam, mam problem z tym kodem:
  1. $tablica = file("zips/info.dat",FILE_SKIP_EMPTY_LINES);
  2. for($x=0; $x <= count($tablica)-1;$x++)
  3. {
  4. $czas = explode(" ",$tablica[$x]);
  5. if($time >= $czas[0] + 7200)
  6. {
  7. print "<br/>Upłynął czas pliku:".$czas[1];
  8. $nazwa = "zips/qwe_MCreator.zip";
  9. unlink($nazwa);
  10. print " - Został on pomyślnie usunięty";
  11. }
  12. }

Ma on odczytywać z pliku info.dat informacje kiedy został plik utworzony i jego ścieżkę.Niby wszystko działa ale gdy zamiast:
  1. $nazwa = "zips/qwe_MCreator.zip";

Dam tak jak ma być:
  1. $nazwa = $czas[1];

To wywala error:

Warning: unlink(zips/asd_MCreator.zip ) [function.unlink]: Invalid argument in C:\xampp\htdocs\generate.php on line 52

nie wiem o co chodzi.Jak dam echo $czas[1]; to normalnie pokazuje mi ścieżkę tongue.gif
17misiek09
jaka jest treść pliku generate.php?cały - żeby można było wyłapać linię 52
piotrooo89
Cytat(17misiek09 @ 6.01.2012, 10:44:23 ) *
jaka jest treść pliku generate.php?cały - żeby można było wyłapać linię 52


nie potrzeba, widać gdzie jest błąd.

a czy plik istnieje? bo jeśli nie istnieje (lub nie w razie niepowodzenia) to unlink generuje E_WARNING.
piotrek5402
Linia 52 jest to :
  1. unlink($nazwa);


Dodam jeszcze że zmienna $time pochodzi od
  1. $time = time();

Zrobiłem to tak aby w całym kodzie był ten sam czas.Cały kod jest na 100% niepotrzebny bo jest to wina chyba rodzaju zmiennej, bo jak już wspomniałem sam wpisze to normalnie kasuje a jak napiszę żeby brało z pliku to nie działa.A ścieżka jest pobierana bo sprawdziłem echo.
piotrek5402
Plik isnieje, jak by nie istniał to by wypluło "no such file or directory".
(Sorka za post pod postem ale edytować nie mogę.)
wNogachSpisz
Spróbuj:
  1. unlink((string)$nazwa);
piotrek5402
Tak samo tongue.gif
Dodam że teraz testuję to na XAMPP, pod windowsem. A czytałem że mogą być problemy z tą komenda pod windowsem.Ale to nie wyjaśnia tego że gdy sam wpiszę ścieżkę to działa tongue.gif
piotrooo89
zobacz wpisujesz:

Kod
zips/qwe_MCreator.zip


a w zmiennej masz:

Kod
zips/asd_MCreator.zip


więc ponawiam pytanie, czy masz plik : zips/asd_MCreator.zip ?
piotrek5402
Tak, mam. Oto cały kod programu:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  6. </head>
  7. <body bgcolor="#222222" text=white>
  8. <?php
  9. $archive = new ZipArchive;
  10. $nazwa = $_POST['name'];
  11.  
  12.  
  13.  
  14. if(file_exists("zips/".$nazwa."_MCreator.zip")) // Sprawdzenie czy plik istnieje
  15. {
  16. print "<font color=red>Taka nazwa już istnieje ! Wybierz inną nazwę !</font><br/>";
  17. }
  18. else
  19. {
  20. if($archive->open("zips/".$nazwa."_MCreator.zip",ZipArchive::CREATE) != true) print '<font color=red>Wystąpił błąd - spróbuj ponownie później</font><br/>';
  21. else
  22. {
  23. //Gdy wszystko idzie dobrze, zostają pobrane informacje jakie pliki mają być w archiwum.
  24. if($_POST['commandbook'] == true) $archive->addFile("serwer/plugins/commandbook.jar");
  25. }
  26.  
  27. $archive->close(); // Zamknięcie dodawania
  28. print "Zakończono ! Kliknij tutaj aby pobrać swój plik:<br/>";
  29. print '<a href="'."zips/".$nazwa."_MCreator.zip".'"><font color=green>_______[DOWNLOAD]_______</font></a><br/>';
  30. print '<font color=#00CCFF>W celu oszczędzania zasobów twój plik zostanie skasowany za 2h.</font>';
  31.  
  32. $time = time();
  33.  
  34. //zapis informacji do pliku
  35. $fp = fopen("zips/info.dat", "a");
  36. flock($fp, LOCK_EX);
  37. for($a=0; $a == count($tablica)+1; $a++)
  38. {
  39. fputs($fp, "\n");
  40. }
  41. fputs($fp, $time.' '.$nazwa."_MCreator.zip\n");
  42. flock($fp, LOCK_UN);
  43.  
  44. //wczytanie informacji i skasowanie starych plików
  45. $tablica = file("zips/info.dat",FILE_SKIP_EMPTY_LINES);
  46. print '<font color=#00CCFF><br/>W ciągu ostatnich 2 godzin wygenerowano '.count($tablica).' plik/ów :)</font>';
  47. for($x=0; $x <= count($tablica)-1;$x++)
  48. {
  49. $czas = explode(" ",$tablica[$x]);
  50. if($time >= $czas[0] + 7200)
  51. {
  52. print "<br/>Upłynął czas pliku:".$czas[1];
  53. $nazwa = "zips/".$czas[1];
  54. unlink((string)$nazwa);
  55. print " - Został on pomyślnie usunięty";
  56. }
  57. }
  58. }
  59. ?>
  60. </body>
  61. </html>


Zawartość pliku info.dat:
Kod
1325800000 asd_MCreator.zip


i zawartość pliku z formularzem:

  1. "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  5. </head>
  6. <body bgcolor="#222222" text=white>
  7. <form action="generate.php" method="POST">
  8. <b>Pluginy:</b> <br/>
  9. <label><input type="checkbox" name="commandbook" value=true /><font color=green>[1.7]</font>CommandBook <br/></label>
  10. <label><input type="checkbox" name="simpleafk" value=true /><font color=green>[0.8]</font>SimpleAFK <br/></label>
  11. <label><input type="checkbox" name="worldedit" value=true /><font color=green>[5.0]</font>WorldEdit <br/></label>
  12. <b>Inne opcje:</b> <br/>
  13. Nazwa paczki:<input name="name" /><br/>
  14.  
  15. <input type="submit" value="Generuj !" /> <br/>
  16. <br/>
  17. </body>
  18. </form>
  19. <font color=#00CCFF>MCOnlineServerCreator v1.0 by piotrek5402</font>
  20. </html>
wNogachSpisz
Pierrrunie...
Coś mi świta, kiedyś chyba natrafiłem na taki problem, pamiętam że powodem był BUG w biblitece ZIP właśnie pod Windowsem.
Ale nie potrafie sobie przypomnieć o co dokładnie chodziło...
piotrooo89
a czy ten plik ma prawa do tego aby go usunąć?
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.