Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie prostego instalatora
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Bakus
Kod wygenerowany przez ten skrypt wystarczy zapisać jako plik .php i uruchomić z poziomu serwera WWW.
Nie ma w tym nic wymyślnego, ale daje ładny efekt i przydaje się, gdy ktoś chce wdostępnić plik php łącznie z plikami binarnymi, a chciałby to mieć w 1 pliku tekstowym...

  1. <?php
  2.  /**
  3.   * Prosty instalator
  4.   * @author Krzysztof Andrzej Błachut
  5.   * @copyright (C) 2004 Krzysztof Andrzej Błachut
  6.   * @email bakus@idn.net.pl
  7.   */
  8.  
  9. function code($file)
  10. {
  11. print '/* ' . $file . ' */' . &#092;"n\";
  12. $d = fopen($file, &#092;"rb\");
  13. $data = '';
  14. while(!feof($d))
  15. {
  16. $data .= fread($d, 512);
  17. }
  18. fclose($d);
  19. print '$d = '' . wordwrap(base64_encode($data), 80, \"'n .'\", true) . \"';n&#092;";
  20. print '$fh = fopen(\"' . $file . '\"\"wb\");' . &#092;"n\";
  21. print 'fwrite($fh, base64_decode($d));' . &#092;"n\";
  22. print 'fclose($fh);' . &#092;"n\";
  23. print 'print \"Wypakowano plik ' . $file . '<br />n\";' . &#092;"n\";
  24. }
  25.  
  26. print '<?php' . &#092;"n\";
  27. code(&#092;"plik.php\");
  28. code(&#092;"plik.jpg\");
  29. print 'print \"<b>Wszystkie pliki zostały wypakowane</b><br />n\";' . &#092;"n\";
  30. print '?>';
  31. ?>


Przykładowy wynik (zostal skrócony):
  1. <?php
  2. /* show_token.php */
  3. $d = 'PD9waHAKLyoKICogQGF1d5c3p0b2YgkcnplaiBCs2FjaHV0CiAqIEBjb3B5cmlnaHQg'
  4. .'KEMpIDIwMDUgS3J6eXZHJ6ZWoghY2h1dAogKiBAZW1haWwgYmFrdXNAaWRuLm5ldC5w'
  5. .'bAogKi8KCiAgICBpZihlBPU1RbInEipCiAgICB7CiAgICAgICAgJG1kNSA9IG1kNSht'
  6. .'Lz4nOwogICAgfQo/Pg==';
  7. $fh = fopen(&#092;"show_token.php\", \"wb\");
  8. fwrite($fh, base64_decode($d));
  9. fclose($fh);
  10. print &#092;"Wypakowano plik show_token.php<br />n\";
  11. print &#092;"<b>Wszystkie pliki zostały wypakowane</b><br />n\"
  12. ?>
NuLL
Bakus - może jak znajdziemy trochę czasu to napiszemy instalator z prawdziwego zdarzenia ?

Sorry za OT
bela
Zzoss ?
NuLL
Korzystałem - dla mnie za trdune - zreszta m,a błedy bo wygenrował mi instalator który się zapętlił - tworzył folder a w nim następny - stworzył folder którego nie mogłem usunąc bo syetm plików nie był w staie. Myśle o czymś prostszym....
Bakus
@NuLL: czemu nie... tu mamy podstawę - skrypt do "pakowania" plików... smile.gif
Kocurro
Sorry za OT:

Sam szykuje już instalator z kodowaniem smile.gif więc może jakoś się zgadamy questionmark.gif biggrin.gif
krysk
@Bakus, NuLL: napisaliście już prawdziwy instalator? Nie chcę wynajdywać koła od nowa winksmiley.jpg Jeśli nie, to czy podczas swoich prób mogę się oprzeć na Twoim "pakerze"?
NuLL
Wydaje mi się, że odkryć koło na nowo. Nie wiem jak Bakus ale ja nic nie naskrobałem.
Bakus
Nie poprawiałem w/w kodu... projekt instalatora został odsunięty na dalszy plan...
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.