Compresser des fichiers avec PHP


1 Estrelas2 Estrelas3 Estrelas4 Estrelas5 Estrelas (6 votes, moyenne: 4.33 sur 5)
Loading ... Chargement en cours ...

Bonjour, aujourd'hui je vais vous montrer comment compresser le fichier avec PHP. La procédure est très simple, si votre serveur est la zlib activée il suffit d'exécuter un code comme ceci:

  1. <?
  2. / **
  3. * Les insère un fichier dans un zip.
  4. *
  5. * @ Param string $ nom de fichier ZIP name_of_zip qui sera travaillé.
  6. * Le fichier @ Param string path path_file $ originale qui va à l'ZIP
  7. * @ Param string $ file_name Nom de fichier dans le ZIP
  8. * @ Return Mixed
  9. * /
  10. $name_of_zip = null , $path_file = null , $file_name = null ) { fonction fileToZip ($ name_of_zip = null, path_file $ = null, $ file_name = null) {
  11. empty ( $name_of_zip ) || empty ( $path_file ) || empty ( $file_name ) ) { if ( vide ($ name_of_zip) | | vide (path_file $) | | vide ($ file_name)) {
  12. ; retour »Tous les paramètres sont nécessaires»;
  13. }
  14. / / Créer l'instance de ZIP
  15. ZipArchive; $ Zip = new ZipArchive;
  16. / / S'il est impossible de créer le fichier ZIP
  17. $zip -> open ( $name_of_zip , ZIPARCHIVE:: CREATE ) === true ) { if ($ zip -> open ($ name_of_zip, ZIPARCHIVE :: CREATE) === true) {
  18. / / Ajouter le fichier à l'intérieur du zip
  19. ( $path_file , $file_name ) ; $ Zip -> AddFile (path_file $, $ file_name);
  20. ( ) ; // fecha a conexão com o ZIP $ Zip -> close () / connexion / étroite avec le Comité ZIP
  21. / / En option, vous pouvez supprimer le fichier original, il suffit d'insérer une variable dans les paramètres
  22. / / Unlink ('/ chemin / vers / fichier / fichier.php');
  23. ; return true;
  24. { Else {}
  25. ; return false;
  26. }
  27. }
  28. ?>


Ce poste est un complément à l' Comment décompresser des fichiers avec PHP et ensemble, nous pouvons transformer une classe très utile.

Voyons voir si cela fonctionne? Je vais jouer ce rôle et la fonction du post précédent dans un fichier et lancez pour voir si le fichier a été créé correctement:

  1. <?
  2. / **
  3. * Les insère un fichier dans un zip.
  4. *
  5. * @ Param string $ nom de fichier ZIP name_of_zip qui sera travaillé.
  6. * Le fichier @ Param string path path_file $ originale qui va à l'ZIP
  7. * @ Param string $ file_name Nom de fichier dans le ZIP
  8. * @ Return Mixed
  9. * /
  10. $name_of_zip = null , $path_file = null , $file_name = null ) { fonction fileToZip ($ name_of_zip = null, path_file $ = null, $ file_name = null) {
  11. empty ( $name_of_zip ) || empty ( $path_file ) || empty ( $file_name ) ) { if ( vide ($ name_of_zip) | | vide (path_file $) | | vide ($ file_name)) {
  12. ; retour »Tous les paramètres sont nécessaires»;
  13. }
  14. / / Créer l'instance de ZIP
  15. ZipArchive; $ Zip = new ZipArchive;
  16. / / S'il est impossible de créer le fichier ZIP
  17. $zip -> open ( $name_of_zip , ZIPARCHIVE:: CREATE ) === true ) { if ($ zip -> open ($ name_of_zip, ZIPARCHIVE :: CREATE) === true) {
  18. / / Ajouter le fichier à l'intérieur du zip
  19. ( $path_file , $file_name ) ; $ Zip -> AddFile (path_file $, $ file_name);
  20. ( ) ; // fecha a conexão com o ZIP $ Zip -> close () / connexion / étroite avec le Comité ZIP
  21. / / En option, vous pouvez supprimer le fichier original, il suffit d'insérer une variable dans les paramètres
  22. / / Unlink ('/ chemin / vers / fichier / fichier.php');
  23. ; return true;
  24. { Else {}
  25. ; return false;
  26. }
  27. }
  28. / **
  29. * Cette fonction décompresse les fichiers
  30. * Une fermeture à glissière
  31. *
  32. * @ Param string $ path l'emplacement du fichier. Zip
  33. * @ Param string $ pathunzip dossier où les fichiers doivent être décompressés
  34. * /
  35. $path , $pathunzip = '.' ) { fonction unzip ($ path, $ pathunzip = '.') {
  36. # === - Instancie la classe de Zip
  37. ZipArchive; $ Zip = new ZipArchive;
  38. # === - Essayez d'ouvrir le zip
  39. $zip -> open ( $path ) ) { if ($ zip -> open ($ path)) {
  40. -> extractTo ( $pathunzip ) ; // executa o unzip $ Retour = $ zip -> extractTo ($ pathunzip) / / exécuter le unzip
  41. ( ) ; // fecha a coneção com o .zip $ Zip -.> Close () / / fermer la connexion ou avec Zip
  42. { Else {}
  43. ; echo "Le fichier ne peut pas être ouvert.";
  44. }
  45. }
  46. / **
  47. * Cette fonction retourne un tableau avec
  48. * Les noms de fichiers qui sont
  49. * Dans le zip.
  50. *
  51. * @ Param string $ path l'emplacement du fichier. Zip
  52. * @ Return array ou faux en cas d'erreur
  53. * /
  54. $path ) { fonction zipToArray ($ path) {
  55. # === - Instancie la classe
  56. ZipArchive; $ Zip = new ZipArchive;
  57. # ==== - Essayez d'ouvrir le zip
  58. $zip -> open ( $path ) ) { if ($ zip -> open ($ path)) {
  59. # === - Récupère le nombre de fichiers zip
  60. -> numFiles ; Num_files $ = zip -> Nombre de fichiers;
  61. # === - Exécute les fichiers prenant les noms et les mettre dans un tableau
  62. $i = 0 ; $i <= ( $num_files ) -1 ; $i ++ ) { for ($ i = 0; $ i <= ($ num_files) -1; $ i + +) {
  63. = $zip -> getNameIndex ( $i ) ; $ Sortie [] = $ zip -> getNameIndex ($ i);
  64. }
  65. # ==== - Ferme la connexion
  66. ( ) ; $ Zip -> close ();
  67. # ==== - Retora le tableau à être manipulée
  68. ; return $ sortie;
  69. }
  70. ; return false;
  71. }
  72. / / Ajout de fichiers
  73. , './texto.txt' , 'texto.txt' ) ; fileToZip ('. / nome_do_zip.zip',, 'texte.txt' / texte.txt. ');
  74. , './texto.txt' , 'texto2.txt' ) ; fileToZip ('. / nome_do_zip.zip',, 'texto2.txt' / texte.txt. ');
  75. / / Lecture du fichier zip créé pour voir si il ya un fichier quelconque dans
  76. zipToArray ( './nome_do_zip.zip' ) ) ; print_r (zipToArray ('/ nome_do_zip.zip.'));
  77. ?>

Voir le résultat:

resultado 300x235 Compactar arquivos com PHP

Je vais faire un post sur la façon de créer une classe avec ces caractéristiques bientôt.

Pour aujourd'hui, il est ...

  1. 4 commentaires pour "compresser les fichiers avec PHP"

  2. Bonne Marcelão ... comme toujours dynamitage dans les messages!
    Ainsi, avait parlé à eu une classe générique, mais il n'est pas .. lol .. pas générique mais comme il est un peu différente de la vôtre, suivez le code là pour des suggestions et des améliorations ... fonctionne très bien ... mais je veux travailler avec l'idéologie correcte OO ... alors aidez-moi! : P

    <Php
    / **
    Zip classe * - Pour compresser des photos d'une rivière diretï ¿½
    *
    * @ Auteur Rafael Ortega Bueno
    * @ Paramètre $ path = chemin du dossier
    * Nom du paramètre @ = $ nom du nouveau fichier
    ** /

    {Classe Zipador

    zip fonction publique ($ path, $ dossier) {

    $ PATH = $ PATH "/".;

    $ Taille = strlen ("$ dossier");

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

    if (substr ($ dossier, $ i, 1) == "/") {
    $ Filename = substr ($ dossier ($ i +1), $ taille);
    }

    }

    / / - Au-dessus de Jhonatan

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

    while ($ fichier = 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 "Le fichier zippé avec succès";
    }
    else {
    d'impression "Problèmes zip votre fichier";
    }

    }
    }

    return " Télécharger le fichier ";

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

    }

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

    buscaNomePasta fonction publique ($ id) {

    Base de données $ = mysql_query ("SELECT FROM d'envoi de fichiers
    OÙ idenvio = $ id ");

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

    $ Dossier = $ row ['fichier'];

    }

    return $ dossier;

    }
    }

    ?>

    Répondre Répondre

    Par Rafael Ortega Bueno (6 commentaires) sur 02/12/2010

  3. Pouvez-vous clarifier une question?

    Comment puis-je créer le fichier en plusieurs parties?

    J'ai un cron qui génère une sauvegarde (bd), puis envoyer colis a été de travailler normalement ......

    mais maintenant la sauvegarde est d'environ 200Mo.
    et le temps de compresser l'erreur, il ne compresse pas ...

    pensé pour compresser en plusieurs parties ... ne sais pas si vous pouvez ..

    merci

    Répondre Répondre

    Par Laureano (1 commentaires) sur 03/09/2011

  4. Guy aimé simple et directe.
    Merci.

    Répondre Répondre

    Par Joshua (4 commentaires) sur 27/08/2011

  5. <Php
    / / Auteur: Luis Estelvio
    / / Date: 12/08/2011

    / / Construire le chemin
    $ Dwloaddir = "path";

    / / Vérifier si le dossier existe, crée par ailleurs
    ! Is_dir (dwloaddir $)? mkdir ($ dwloaddir, 0777): "";

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

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

    fclose ($ fichier);

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

    for ($ i = 0;! $ i ouvert ($ filename, ZIPARCHIVE :: CREATE) == TRUE) {
    exit ("Impossible d'ouvrir le fichier \ n");
    }

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

    ?>

    Répondre Répondre

    Pour Estelvio (1 commentaires) sur 12.06.2011

Placez un commentaire

Liens commentaire doit être nofollow libres .

pas cher ultram Clonazepam Acheter l'euphorie à lunettes occupé des mauvaises herbes rayon de soleil pas cher zolpidem xanax en ligne . Les échangeurs Ambien CR à lunettes bave contre les mauvaises herbes , où puis-je commander phentermine clinique extorsion Washoe Adipex sans ordonnance Acheter Stilnox occupé bave memorableness intérieure Adderall XR continue piège. Superviseurs nourrissons accents Acheter Diflucan direct buy phentermine 37.5 valium pas cher radialement lenteur mégawatts Nitrazepam Acheter clinique robes douleurs inter- clonazépam en ligne rayon de soleil. Nourrissons pas cher Xanax skimps Latran. Catch pas cher adipex supplément Lesbiennes Tarrytown acheter Modafinil bave intérieure. Spectateur xanax bars fil Xanax ordonner Adipex en ligne Enders extorsion douleurs posteriori. Distorted phentermine no prescription Ventured. Tic appartenant acheter Lunesta Pareto. L'américium connaître meurtrière sobre clonazépam Cheap Adipex sans ordonnance dichotomiser Bellwood accents retentissant pas cher ativan lenteur acheter en ligne ativan memorableness. Bendix spectateur Xanax XR robes interprocess Enders sonnets Acheter Modalert ambien buy . Les nourrissons intimider spec rompu ravage Acheter Xanax élogieuse agitateur Danielson somnifères skimps ne Laredo dépositaire Stilnox Thule secousse se masturbait en ligne ambien Lesbiennes pas cher tramadol panthéisme pas cher lorazépam librium Achat haut la main le fouet blanchi concubine sous-expressions pilules contre la douleur en ligne Tramadol mégawatts faible incapable Acheter Valium ativan en ligne barreur rembourrés respectueusement étudié rééchelonner Xanax sans prescription Enders douleurs Cheap Valium justifiant le besoin en ligne valium . Appartenant pharmacies en ligne xanax Afrique rompu Acheter Zolpidem Lunesta lenteur reins ambien pas cher . Lutte manuscrits Laredo entre parenthèses
Get Adobe Flash player Plugin par wpburn.com thèmes wordpress