Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Modyfikacja Skrypty - Modyfikacja Pliku
Forum PHP.pl > Forum > Przedszkole
asziatko
Witam,

Skorzystałem z takie gotowca jak

Kod
<?php
    # Autorem skryptu jest: Marcin Lis
        $name = "baza_danych.txt"; #Definiujemy nazwę pliku, wraz z jej ścieżką    
      function getModTime($file) {
        $time = filemtime($file);
        $date = date("G:i:s d.m.Y", $time);
      print "Data ostatniej modyfikacji pliku ". $name ." to ". $date.".";
      }
     getModTime($name); #Kod wyświetlający zawartość funkcji
    ?>


Skrypt znajduje się na http://webmade.org/porady/data-modyfikacji-php.php .

Pierwsze pytanie czy można go delikatnie zmodyfikować?. Jeśli tak to jak zmodyfikować w/w skrypt żeby czytał więcej jak jeden plik modyfikowany?. Mam obecnie 7 plików ZIP w tym samym folderze. Jak dam

Kod
$name = "1.zip";
    $name = "2.zip";
    $name = "3.zip";
    itd


to skrypt czyta mi datę tylko z pierwszego pliku a nie każdego co się wrzuci zmodyfikowanego.
nospor
Cytat
Autorem skryptu jest
3 linijki kodu... moze niech jeszcze to opatentuje winksmiley.jpg

Tak, mozna to zmodyfikowac, a nawet jakby nie mozna bylo, to sorki, w manuala na peczki jest takich przykladow

Co do problemu: zapodaj do funkcji tablice, i foreachem iteruj pokolei
asziatko
nospo zrobiłem tak

Kod
<?php
foreach (glob("spisy/*.zip") as $plik) {
}
function getModTime($file) {
$czas = filemtime($file);
$data = date("d.m.Y, G:i:s", $czas);
echo "Spisy aktualizowane ". $plik ." dnia ". $data.".";
}
getModTime($plik);
?>


dałem

Kod
foreach (glob("spisy/*.zip") as $plik) {
}


pokazuje mi modyfikację plików ale nie dokładnie, tz. nie pokazuje ostatniej modyfikacji np. jak był modyfikowany plik ZIP 19.02.2009 o godzinie 22:00 tylko pokazuje pierwsza datę od końca np. 11.02.2009 godzina 22:15.

W czym jest błąd?.
nospor
ech....
foreach (glob("spisy/*.zip") as $plik) {
}

PRzeciez ten foreach nic nie robi bo nic nie ma w srodku

  1. <?php
  2. function getModTime($file) {
  3. $czas = filemtime($file);
  4. $data = date("d.m.Y, G:i:s", $czas);
  5. echo "Spisy aktualizowane ". $plik ." dnia ". $data.".";
  6. }
  7. foreach (glob("spisy/*.zip") as $plik) {
  8. getModTime($plik);
  9. }
  10. ?>
asziatko
Fajnie, to już coś o co mi chodziło. Wygląda tak to na WWW

Cytat
Spisy Excel'u aktualizowane dnia 19.02.2009, 16:57:25.

Spisy Excel'u aktualizowane dnia 15.02.2009, 16:37:12.

Spisy Excel'u aktualizowane dnia 11.02.2009, 22:15:07.

Spisy Excel'u aktualizowane dnia 12.02.2009, 18:45:38.

Spisy Excel'u aktualizowane dnia 11.02.2009, 22:15:07.

Spisy Excel'u aktualizowane dnia 15.02.2009, 16:37:11.

Spisy Excel'u aktualizowane dnia 11.02.2009, 22:15:08.

Spisy Excel'u aktualizowane dnia 15.02.2009, 16:37:12.

Spisy Excel'u aktualizowane dnia 15.02.2009, 16:37:12.

Spisy Excel'u aktualizowane dnia 15.02.2009, 16:37:12.

Spisy Excel'u aktualizowane dnia 11.02.2009, 22:15:08.

Spisy Excel'u aktualizowane dnia 11.02.2009, 22:15:08.





A jest możliwość zrobienia tak żeby pokazywał skrypt tylko jedną datę (to będzie chyba coś modyfikacja już folderu)?. Np.

Cytat
Spisy Excel'u aktualizowane dnia 11.02.2009, 22:15:08.


I jak się wrzuci zmodyfikowany plik ZIP do folderu to zmienia się data.
nospor
jasne. Musisz pobierac date modyfikacji, i zapisywac te ostatnio modyfikowaną. Dwie linijki kodu z prostym ifem. Pozostawiam tobie, w razie problemow pisz.
asziatko
Hm... przyznam że nie wiem jak się zabrać za to. Coś mi chodzi po głowie próbowałem to robić ale nie wyświetla się data.
nospor
  1. <?php
  2. $lastTime = null;
  3. foreach (glob("spisy/*.zip") as $file) {
  4. $time = filemtime($file);
  5. if ($lastTime === null)
  6. $lastTime = $time;
  7. else {
  8. if ($time > $lastTime)
  9. $lastTime = $time
  10. }
  11. }
  12. echo date('Y-m-d H:i:s', $lastTime);
  13. ?>

pisane z palca

edit: lub krotsza wersja:
  1. <?php
  2. $lastTime = 0;
  3. foreach (glob("spisy/*.zip") as $file) {
  4. $time = filemtime($file);
  5. if ($time > $lastTime)
  6. $lastTime = $time
  7. }
  8. echo date('Y-m-d H:i:s', $lastTime);
  9. ?>
asziatko
Błąd się pojawił

Cytat
Parse error: syntax error, unexpected '}' in /home/serwer/public_html/spisy.php on line 136


gdzie 136 linią jest

Kod
}

nospor
mowilem ze pisalem z palca. zjadlem srednik przy:
$lastTime = $time
asziatko
nospor wielkie dzięki za pomoc i jednocześnie przepraszam że tak trudno idzie mi zrozumieć PHP, ciekawy język, wiele możliwości ale za nic nie mogę go pojąc i sam sobie poradzić nie kiedy z najprostszymi sprawami.
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.