{"id":6482,"date":"2014-11-19T19:11:26","date_gmt":"2014-11-19T19:11:26","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=6482"},"modified":"2014-11-19T19:11:26","modified_gmt":"2014-11-19T19:11:26","slug":"comprimir-y-descomprimir-archivos-zip-con-ziparchive-php","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/","title":{"rendered":"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP"},"content":{"rendered":"<p>En algunas aplicaciones de programaci\u00f3n avanzada nos vemos en la necesidad de tener que empaquetar archivos para su descargar y desempaquetarlos para su instalaci\u00f3n o visualizaci\u00f3n.<\/p>\n<p>Comprimir y descomprmir archivos .zip con PHP es m\u00e1s f\u00e1cil de lo que parece. Con muy pocas lineas de c\u00f3digo puedes conseguir hacerlo. PHP dispone de una clase que te va ahorrar mucho c\u00f3digo.<\/p>\n<p>Con PHP se puede comprimir y descomprimir archivos de varias formas. En este art\u00edculo vamos a ver como hacerlo utilizando la librer\u00eda <strong>ZipArchive<\/strong> de PHP.<\/p>\n<p>Antes de poder utilizar esta liber\u00eda es necesario checkear la informaci\u00f3n de nuestro servidor para ver si la extensi\u00f3n ZIP est\u00e1 habilitada.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6484\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/zip-server.png\" alt=\"zip-server\" width=\"632\" height=\"150\" srcset=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/zip-server.png 632w, https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/zip-server-300x71.png 300w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><\/p>\n<p>Si lo tenemos habilitado podremos comprimir archivos de la siguiente forma:<\/p>\n<pre lang=\"php\">\r\n<?php\r\n$zip = new ZipArchive();\r\n\r\n$filename = 'test.zip';\r\n\r\nif($zip->open($filename, ZIPARCHIVE::CREATE)) {\r\n    $zip->addFile('file1.txt');\r\n    $zip->addFile('file2.txt');\r\n    $zip->close();\r\n    echo 'Se ha creado correctamente '.$filename;\r\n}\r\nelse {\r\n    echo 'Error creando '.$filename;\r\n}\r\n?>\r\n<\/pre>\n<p>Y descomprimir de la siguiente:<\/p>\n<pre lang=\"php\">\r\n<?php\r\n$zip = new ZipArchive();\r\n\r\nif ($zip->open('test.zip')) {\r\n    $zip->extractTo('extract\/');\r\n    $zip->close();\r\n    echo 'El archivo ha sido descomprimido correctamente';\r\n} else {\r\n    echo 'Error al descomprimir';\r\n}\r\n?>\r\n<\/pre>\n<p>En este caso estamos descomprimiendo el contenido de test.zip en una carpeta llama \u00abextract\u00bb que tenemos preparada para la recepci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En algunas aplicaciones de programaci\u00f3n avanzada nos vemos en la necesidad de tener que empaquetar archivos para su descargar y desempaquetarlos para su instalaci\u00f3n o visualizaci\u00f3n. Comprimir y descomprmir archivos .zip con PHP es m\u00e1s f\u00e1cil de lo que parece. Con muy pocas lineas de c\u00f3digo puedes conseguir hacerlo. PHP dispone de una clase que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6483,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[103],"class_list":["post-6482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-archivos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comprimir y descomprimir archivos ZIP con ZipArchive de PHP - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"En algunas aplicaciones de programaci\u00f3n avanzada nos vemos en la necesidad de tener que empaquetar archivos para su descargar y desempaquetarlos para su instalaci\u00f3n o visualizaci\u00f3n. Comprimir y descomprmir archivos .zip con PHP es m\u00e1s f\u00e1cil de lo que parece. Con muy pocas lineas de c\u00f3digo puedes conseguir hacerlo. PHP dispone de una clase que [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2014-11-19T19:11:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png\" \/>\n\t<meta property=\"og:image:width\" content=\"240\" \/>\n\t<meta property=\"og:image:height\" content=\"240\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/\",\"name\":\"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png\",\"datePublished\":\"2014-11-19T19:11:26+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png\",\"width\":240,\"height\":240},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP - Jose Aguilar Blog","og_description":"En algunas aplicaciones de programaci\u00f3n avanzada nos vemos en la necesidad de tener que empaquetar archivos para su descargar y desempaquetarlos para su instalaci\u00f3n o visualizaci\u00f3n. Comprimir y descomprmir archivos .zip con PHP es m\u00e1s f\u00e1cil de lo que parece. Con muy pocas lineas de c\u00f3digo puedes conseguir hacerlo. PHP dispone de una clase que [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2014-11-19T19:11:26+00:00","og_image":[{"width":240,"height":240,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/","url":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/","name":"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png","datePublished":"2014-11-19T19:11:26+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2014\/11\/ZIP1-240x240.png","width":240,"height":240},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/comprimir-y-descomprimir-archivos-zip-con-ziparchive-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Comprimir y descomprimir archivos ZIP con ZipArchive de PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=6482"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6482\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/6483"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=6482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=6482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=6482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}