Tag Archive for zip open in php

How to read the zip content in php?

To read the zip content in php, you should have your zip extension enabled first. The extension is located in /php/ext directory. To enable it add this line to php.ini file.
extension = php_zip.dll

Once you have your extension enabled, you could use the php built in function to open and read the zip content. Here is the small example to read multiple files contained in the zip.

 function read_zip_file($zipfile) {
 $zip = zip_open($zipfile);

 if(is_resource($zip)) {
	while(($zip_entry = zip_read($zip))) {
		$filename = basename(zip_entry_name($zip_entry));
		$entry_content = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

		$each_file_content[$filename] = $entry_content;
 }else {
	echo 'Invalid Zip Format';

How to read .docx file in php?

.docx file is Microsoft Office Open XML Format Document. This is the new format for Microsoft Office documents (2007). It is a combination of XML architecture and ZIP compression for size reduction. The function below takes the filename as parameter and return the content of the .docx file.

function read_file_docx($filename){

    $striped_content = '';
    $content = '';

    if(!$filename || !file_exists($filename)) return false;

    $zip = zip_open($filename);

    if (!$zip || is_numeric($zip)) return false;

    while ($zip_entry = zip_read($zip)) {

        if (zip_entry_open($zip, $zip_entry) == FALSE) continue;

        if (zip_entry_name($zip_entry) != "word/document.xml") continue;

        $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

    }// end while


    $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
    $content = str_replace('</w:r></w:p>', "\r\n", $content);
    $striped_content = strip_tags($content);

    return $striped_content;