Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Preloader tworzonego archiwum plików
Forum PHP.pl > Forum > Przedszkole
peja1990
Witam serdecznie,
czy mógłby mnie ktoś naprowadzić jak można zrobić preloader dla tworzonego archiwum plików z serwera FTP (.tar.gz).
Nie musi to być preloader w jQuery, wystarczy zwykłe PHP.
Chodzi mi o wyświetlenie wartości procentowej tworzonego archiwum.

---
Po przemyśleniu myślę, że trzeba byłoby uruchomić takie zadanie "w tle" (jeżeli jest to w ogóle możliwe, jeżeli tak to chyba przez cron'a) albo stworzenie skryptu w połączeniu z JS'em.

A Wy co o tym myślicie ?
Jakieś wskazówki czy sugestie ?
Może ktoś z Was miał już kiedyś z tym do czynienia smile.gif
Liczę na wszelką pomoc gdyż dumam nad tym i wydumać nie mogę smile.gif

EDIT:
Po kolejnym przemyśleniu stwierdziłem, że rozwiązanie cron'owe jest najwłaściwsze i planuję napisać skrypt php, który będzie wykonywany cronem cyklicznie np. co kilka godzin albo będzie wykonywany po przejściu na pewną ze stron na której ma zostać wyświetlony wynik i będzie on aktualizował rekordy w bazie mysql które w kolumnie oznaczonej jako "status" nie będzie wartości "100".
Aktualizację chciałbym przeprowadzić na zasadzie zawartości plików w archiwum co miałoby być porównane z zawartością plików które miały zostać spakowane do archiwum.

Co Wy o tym myślicie ?
Jest to według Was realne i dobre rozwiązanie ?
Czy jest w ogóle możliwość policzenia ilości plików w archiwum ?

PODSUMOWUJĄC:
1) Jak dodać/usunąć cronjob'a (plik PHP) z poziomu PHP ?
Plik będzie zawierał skrypt tworzący archiwum plików na serwerze.
2) Jak za pomocą PHP odczytać ilość plików w archiwum (.tar.gz lub ew. .zip) ?


Z poważaniem,
Kamil Dunaj
karakara
2)

  1. <?php
  2. $za = new ZipArchive();
  3.  
  4. $za->open('test_with_comment.zip');
  5. print_r($za);
  6. var_dump($za);
  7. echo "numFiles: " . $za->numFiles . "\n";
  8. echo "status: " . $za->status . "\n";
  9. echo "statusSys: " . $za->statusSys . "\n";
  10. echo "filename: " . $za->filename . "\n";
  11. echo "comment: " . $za->comment . "\n";
  12.  
  13. for ($i=0; $i<$za->numFiles;$i++) {
  14. echo "index: $i\n";
  15. print_r($za->statIndex($i));
  16. }
  17. echo "numFile:" . $za->numFiles . "\n";
  18. ?>


http://us2.php.net/manual/en/book.zip.php
http://us2.php.net/manual/en/refs.compression.php

Edit:
a 1) tutaj
http://stackoverflow.com/questions/4421020...te-crontab-jobs

  1. <?
  2. $output = shell_exec('crontab -l');
  3. file_put_contents('/tmp/crontab.txt', $output.'* * * * * NEW_CRON'.PHP_EOL);
  4. echo exec('crontab /tmp/crontab.txt');
  5. ?>
peja1990
Cytat(karakara @ 13.10.2012, 07:46:10 ) *
2)

  1. <?php
  2. $za = new ZipArchive();
  3.  
  4. $za->open('test_with_comment.zip');
  5. print_r($za);
  6. var_dump($za);
  7. echo "numFiles: " . $za->numFiles . "\n";
  8. echo "status: " . $za->status . "\n";
  9. echo "statusSys: " . $za->statusSys . "\n";
  10. echo "filename: " . $za->filename . "\n";
  11. echo "comment: " . $za->comment . "\n";
  12.  
  13. for ($i=0; $i<$za->numFiles;$i++) {
  14. echo "index: $i\n";
  15. print_r($za->statIndex($i));
  16. }
  17. echo "numFile:" . $za->numFiles . "\n";
  18. ?>


http://us2.php.net/manual/en/book.zip.php
http://us2.php.net/manual/en/refs.compression.php

Edit:
a 1) tutaj
http://stackoverflow.com/questions/4421020...te-crontab-jobs

  1. <?
  2. $output = shell_exec('crontab -l');
  3. file_put_contents('/tmp/crontab.txt', $output.'* * * * * NEW_CRON'.PHP_EOL);
  4. echo exec('crontab /tmp/crontab.txt');
  5. ?>


Wielkie dzięki mistrzu !
Odpowiedź na drugie pytanie dotyczące ilości spakowanych plików działa super wink.gif
Jednak co do cronjob'a nie jest już tak wesoło gdyż póki co nie przetestowałem tego... ponieważ nie znam ścieżki do pliku na swoim serwerze, który przechowuje zadania cron, a wolałbym przed tym zrobić jego kopię zapasową na wszelki wypadek.
Przetestuję to dopiero gdy admin mojego serwera poda mi do niego ścieżkę smile.gif
Ale megaaaa WIELKIE dzięki smile.gif


Serdecznie pozdrawiam,
Kamil Dunaj
karakara
/tmp/crontab.txt to plik ktory ty tworzysz gdzie chcesz
a pozniej przekazujesz jako argument do crontab przy wywołaniu

nie wiem tylko jak to się ma do uprawnienie na serwerze itp.
peja1990
Cytat(karakara @ 13.10.2012, 10:00:39 ) *
/tmp/crontab.txt to plik ktory ty tworzysz gdzie chcesz
a pozniej przekazujesz jako argument do crontab przy wywołaniu

nie wiem tylko jak to się ma do uprawnienie na serwerze itp.


Skora tak to super, a więc przetestuję to gdy wrócę z miasta.
Karakara, jeżeli możesz odezwij się do mnie na GG: 41012323 smile.gif

A co do cron'a, to odpowiedź od administratora mojego serwera:
  1. Pliki cronów znajdują się w katalogu:
  2. /var/spool/cron/crontabs
  3.  
  4. Proszę zauważyć, iż poprawne dodanie np. rekordu do crona powinno się odbywać poprzez komendę "crontab" - samo edytowanie plików cronów nic nie da.

a więc czy będzie to możliwe ?

-----
UPDATE:
Zapewne powyższe pytanie jest głupie bo przecież shell_exec() przekazujemy komendę do serwera, prawda ? smile.gif
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.