Komprimieren von Dateien mit PHP


1 Estrelas2 Estrelas3 Estrelas4 Estrelas5 Estrelas (6 Stimmen, Durchschnitt: 4,33 von 5)
Loading ... Loading ...

Hallo, heute werde ich Ihnen zeigen, wie man mit PHP-Datei zu komprimieren. Das Verfahren ist sehr einfach, wenn Ihr Server ist die zlib fähigen führen Sie einfach einen Code wie folgt aus:

  1. <?
  2. / **
  3. * Fügt eine Datei innerhalb eines Zip.
  4. *
  5. * @ Param string $ name name_of_zip ZIP-Datei, die bearbeitet werden sollen.
  6. * @ Param string $ path_file Pfad Original-Datei, die dem ZIP geht
  7. * @ Param string $ dateiname Name der Datei in der ZIP
  8. * @ Return mixed
  9. * /
  10. $name_of_zip = null , $path_file = null , $file_name = null ) { fileToZip Funktion ($ name_of_zip = null, $ path_file = null, $ file_name = null) {
  11. empty ( $name_of_zip ) || empty ( $path_file ) || empty ( $file_name ) ) { wenn ( leer ($ name_of_zip) | | leer ($ path_file) | | leer ($ dateiname)) {
  12. ; zurückkehren "Alle Parameter sind erforderlich ';
  13. }
  14. / / Erstellen der Instanz von ZIP
  15. ZipArchive; $ Zip = new ZipArchive;
  16. / / Wenn nicht die ZIP-Datei erstellen
  17. $zip -> open ( $name_of_zip , ZIPARCHIVE:: CREATE ) === true ) { if ($ zip -> open ($ name_of_zip, ZIPARCHIVE :: CREATE) === true) {
  18. / / Fügen Sie die Datei im Zip-
  19. ( $path_file , $file_name ) ; $ Zip -> AddFile ($ path_file, $ datei);
  20. ( ) ; // fecha a conexão com o ZIP $ Zip -> close () / / enge Verbindung mit dem ZIP-
  21. / / Optional können Sie die ursprüngliche Datei zu löschen, legen Sie einfach eine Variable in den Parametern
  22. / / Unlink ('/ pfad / zu / Datei / datei.php');
  23. ; return true;
  24. { Else {}
  25. ; return false;
  26. }
  27. }
  28. ?>


Dieser Beitrag ist eine Ergänzung zu den Wie-Dateien mit PHP entpacken und zusammen können wir eine sehr nützliche Klasse verwandeln.

Mal sehen, ob es funktioniert? Ich spiele diese Rolle und Funktion der früheren Post in eine Datei und starten Sie zu sehen, ob die Datei korrekt erstellt wurde:

  1. <?
  2. / **
  3. * Fügt eine Datei innerhalb eines Zip.
  4. *
  5. * @ Param string $ name name_of_zip ZIP-Datei, die bearbeitet werden sollen.
  6. * @ Param string $ path_file Pfad Original-Datei, die dem ZIP geht
  7. * @ Param string $ dateiname Name der Datei in der ZIP
  8. * @ Return mixed
  9. * /
  10. $name_of_zip = null , $path_file = null , $file_name = null ) { fileToZip Funktion ($ name_of_zip = null, $ path_file = null, $ file_name = null) {
  11. empty ( $name_of_zip ) || empty ( $path_file ) || empty ( $file_name ) ) { wenn ( leer ($ name_of_zip) | | leer ($ path_file) | | leer ($ dateiname)) {
  12. ; zurückkehren "Alle Parameter sind erforderlich ';
  13. }
  14. / / Erstellen der Instanz von ZIP
  15. ZipArchive; $ Zip = new ZipArchive;
  16. / / Wenn nicht die ZIP-Datei erstellen
  17. $zip -> open ( $name_of_zip , ZIPARCHIVE:: CREATE ) === true ) { if ($ zip -> open ($ name_of_zip, ZIPARCHIVE :: CREATE) === true) {
  18. / / Fügen Sie die Datei im Zip-
  19. ( $path_file , $file_name ) ; $ Zip -> AddFile ($ path_file, $ datei);
  20. ( ) ; // fecha a conexão com o ZIP $ Zip -> close () / / enge Verbindung mit dem ZIP-
  21. / / Optional können Sie die ursprüngliche Datei zu löschen, legen Sie einfach eine Variable in den Parametern
  22. / / Unlink ('/ pfad / zu / Datei / datei.php');
  23. ; return true;
  24. { Else {}
  25. ; return false;
  26. }
  27. }
  28. / **
  29. * Diese Funktion dekomprimiert Dateien
  30. * Ein zip
  31. *
  32. * @ Param string $ path Pfad zu den Dateien. Zip
  33. * @ Param string $ pathunzip Ordner, in dem Dateien entpackt werden sollen
  34. * /
  35. $path , $pathunzip = '.' ) { Funktion unzip ($ path, $ pathunzip = '.') {
  36. # === - Instanziiert die Klasse von Zip
  37. ZipArchive; $ Zip = new ZipArchive;
  38. # === - Versuchen Sie, den Reißverschluss zu öffnen
  39. $zip -> open ( $path ) ) { if ($ zip -> open ($ path)) {
  40. -> extractTo ( $pathunzip ) ; // executa o unzip $ Return = $ zip -> extractTo ($ pathunzip) / / Ausführen des unzip
  41. ( ) ; // fecha a coneção com o .zip $ Zip -.> Close () / / Verbindung schließen oder mit Zip
  42. { Else {}
  43. ; echo "Die Datei kann nicht geöffnet werden. ';
  44. }
  45. }
  46. / **
  47. * Diese Funktion gibt ein Array mit
  48. * File-Namen, die sind
  49. * In dem zip.
  50. *
  51. * @ Param string $ path Pfad zu den Dateien. Zip
  52. * @ Return Array oder FALSE bei einem Fehler
  53. * /
  54. $path ) { zipToArray Funktion ($ path) {
  55. # === - Instanziiert die Klasse
  56. ZipArchive; $ Zip = new ZipArchive;
  57. # ==== - Versuchen Sie, den Reißverschluss zu öffnen
  58. $zip -> open ( $path ) ) { if ($ zip -> open ($ path)) {
  59. # === - Ruft die Anzahl der ZIP-Dateien
  60. -> numFiles ; Num_files $ = $ zip -> numFiles;
  61. # === - Führt die Dateien unter Namen und setzen in einem Array
  62. $i = 0 ; $i <= ( $num_files ) -1 ; $i ++ ) { for ($ i = 0; $ i <= ($ num_files) -1; $ i + +) {
  63. = $zip -> getNameIndex ( $i ) ; $ Ausgabe [] = $ zip -> getNameIndex ($ i);
  64. }
  65. # ==== - Schließt die Verbindung
  66. ( ) ; $ Zip -> close ();
  67. # ==== - Retora das Array manipuliert werden
  68. ; return $ ausgegeben;
  69. }
  70. ; return false;
  71. }
  72. / / Hinzufügen von Dateien
  73. , './texto.txt' , 'texto.txt' ) ; fileToZip ('. / nome_do_zip.zip',, 'test.txt' '/ text.txt.');
  74. , './texto.txt' , 'texto2.txt' ) ; fileToZip ('. / nome_do_zip.zip',, 'texto2.txt' '/ text.txt.');
  75. / / Lesen Sie die Zip-Datei erstellt, um zu sehen, ob es eine Datei innerhalb
  76. zipToArray ( './nome_do_zip.zip' ) ) ; print_r (zipToArray ('/ nome_do_zip.zip.'));
  77. ?>

Sehen Sie das Ergebnis:

resultado 300x235 Compactar arquivos com PHP

Ich werde einen Posten auf, wie eine Klasse mit diesen Features bald zu schaffen machen.

Für heute ist es ...

  1. 4 Kommentare zu "Komprimieren von Dateien mit PHP"

  2. Marcelão gut ... wie immer strahlen in Beiträgen!
    So, gesprochen hatte, hatte auf eine generische Klasse, ist aber nicht .. lol .. nicht generischen aber da es ein wenig anders als deine ist, folgen Sie den Code dort für Anregungen und Verbesserungsvorschläge ... funktioniert prima ... aber ich möchte mit der richtigen Ideologie OO arbeiten ... so helfen Sie mir! : P

    <PHP
    / **
    * Klasse Zip - Um zip Bilder eines Flusses diretï ¿½
    *
    * @ Autor Rafael Ortega Bueno
    * @ Parameter $ path = Ordnerpfad
    * @ Parameter name = $ name wird die neue Datei
    ** /

    {Klasse Zipador

    öffentliche Funktion zip ($ path, $ folder) {

    $ PATH = $ PATH "/".;

    $ Size = strlen ("$-Ordner");

    for ($ i = 0; $ i <$ size, $ i + +) {

    if (substr ($ folder, $ i, 1) == "/") {
    $ FileName = substr ($ Ordner ($ i +1), $ size);
    }

    }

    / / - Above Jhonatan

    $ Dir = opendir ($ path);
    $ X = Array ();

    while ($ file = readdir ($ dir)) {
    array_push ($ x, $ file);
    }

    for ($ i = 0; iOpen $ (". $ {} new_name zip" ZIPARCHIVE :: CREATE) === true) {
    $ Zip-> AddFile ($ path $ X [$ i], $ x [$ i].);
    $ Zip-> close ();
    print "Datei erfolgreich gezippt";
    }
    else {
    print "Ihre Probleme zip-Datei";
    }

    }
    }

    return " Datei herunterladen ";

    / / Echo "location.href = '$ new_name.zip'";

    }

    / / ------------

    public function buscaNomePasta ($ id) {

    $ Database = mysql_query ("SELECT FROM Dateiversand
    WO idenvio = $ id ");

    while ($ row = mysql_fetch_array ($ database)) {

    $ Folder = $ row ['Datei'];

    }

    return $-Ordner;

    }
    }

    ?>

    Antworten Antworten

    Von Rafael Ortega Bueno (6 Kommentare) am 2010.12.02

  3. Können Sie das klären Sie eine Frage?

    Wie erstelle ich die Datei in mehrere Teile?

    Ich habe einen cron, die ein Backup erzeugt (bd) und dann schicken Sie Paket wurde normal arbeiten ......

    aber jetzt die Sicherung ist etwa 200MB.
    und die Zeit, um den Fehler zu komprimieren, es nicht komprimiert ...

    gedacht, um in mehrere Teile zu komprimieren ... weiß nicht, wenn du kannst ..

    danke

    Antworten Antworten

    Durch Laureano (1 Kommentare) am 2011.09.03

  4. Kerl mochte einfach und unkompliziert.
    Danke.

    Antworten Antworten

    Von Joshua (4 Kommentare) am 27/08/2011

  5. <PHP
    / / Autor: Luis Estelvio
    / / Datum: 2011.08.12

    / / Erzeuge den Pfad
    Dwloaddir $ = "Pfad";

    / / Prüfen, ob der Ordner vorhanden ist, sonst schafft
    ! Is_dir ($ dwloaddir)? mkdir ($ dwloaddir, 0777): "";

    $ Datei = fopen ($ dwloaddir "/" "Teste_1.txt", "w"..);

    for ($ i = 0; $ i <10; $ i + +) fwrite ($ file, "Test Test Test Test \ n");

    fclose ($ file);

    $ Datei = fopen ($ dwloaddir "/" "Teste_2.txt", "w"..);

    for ($ i = 0;! $ i open ($ filename, ZIPARCHIVE :: CREATE) == true) {
    exit ("Konnte Datei nicht öffnen \ n");
    }

    $ Zip-> AddFile ($ dwloaddir "/ Teste_1.txt", "teste_1.txt".);
    $ Zip-> AddFile ($ dwloaddir "/ Teste_2.txt", "teste_2.txt".);
    $ Zip-> close ();

    ?>

    Antworten Antworten

    Für Estelvio (1 Kommentare) am 2011.06.12

Platzieren Sie einen Kommentar

Kommentar Link sollte nofollow frei .

ultram billig kaufen Clonazepam Euphorie bebrillt beschäftigte Unkraut Sonnenstrahl Zolpidem billige xanax online . Austauschbar Ambien CR bebrillt Unkraut drool Wo kann ich bestellen phentermine Klinik Washoe Erpressung Adipex ohne Rezept kaufen Stilnox beschäftigte drool Einprägsamkeit inneren Adderall XR Weiterbildung umgarnt. Kleinkinder Vorgesetzten Schwerpunkte Kaufen Diflucan Direktheit Buy Phentermine 37,5 Cheap Valium radial Langsamkeit Megawatt kaufen Nitrazepam Klinik Kleider Wundsein Interprozesskommunikation Clonazepam Online Sonnenstrahl. Kleinkinder Cheap Xanax Lateran skimps. Wrestling billige adipex Aufschlag Lesben Tarrytown kaufen Modafinil inneren sabbern. Onlooker xanax Bars Faden Xanax Auftrag Adipex Online- Erpressung Wundsein Nachhinein Enders. Verzerrte phentermine gewagt. Die Zugehörigkeit zucken kaufen Lunesta Pareto. Americium veröffentlichen mörderischen zurückhaltend Cheap Clonazepam Adipex ohne Rezept dichotomisiert Schwerpunkte Bellwood durchschlagender billig ativan Langsamkeit buy ativan Online Einprägsamkeit. Bendix Betrachter xanax xr Kleider Interprozesskommunikation Enders Sonette kaufen Modalert Buy Ambien . Kleinkinder einschüchtert, durchtrennt spec verwüsten Buy Xanax Belobigung Schüttler Danielson Schlaftabletten skimps hat Laredo Verwahrer Stilnox Thule zucken masturbierte ambien online Lesben Cheap Tramadol Pantheismus Lorazepam billig kaufen Librium handlich Peitsche gewaschen Konkubine Unterausdrücke Schmerztabletten Online Tramadol Megawatt Ohnmacht nicht in der Lage Valium Buy Ativan Online gepolsterten Steuermann respektvoll studierte Umschuldung Xanax No Prescription Wundsein Enders Cheap Valium justifier Bedürftigen valium online . Gehörenden Online-Apotheken xanax Afrika durchtrennt kaufen Zolpidem Lunesta Lenden Langsamkeit Cheap Ambien . Wrestling Laredo Manuskripte Klammern
Get Adobe Flash player Plugin von wpburn.com Wordpress Themes