Чтение docx файлов в php

August 19, 2014

Думаю многим пригодится данный класс

require(«doc2txt.class.php»);

$docObj = new Doc2Txt(«test.docx»);
//$docObj = new Doc2Txt(«test.doc»);

$txt = $docObj->convertToText();
echo $txt;


Сам класс

filename = $filePath;
}

private function read_doc() {
$fileHandle = fopen($this->filename, «r»);
$line = @fread($fileHandle, filesize($this->filename));
$lines = explode(chr(0x0D),$line);
$outtext = «»;
foreach($lines as $thisline)
{
$pos = strpos($thisline, chr(0x00));
if (($pos !== FALSE)||(strlen($thisline)==0))
{
} else {
$outtext .= $thisline.» «;
}
}
$outtext = preg_replace(«/[^a-zA-Z0-9s,.-nrt@/_()]/»,»»,$outtext);
return $outtext;
}

private function read_docx(){

$striped_content = »;
$content = »;

$zip = zip_open($this->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));

zip_entry_close($zip_entry);
}// end while

zip_close($zip);

$content = str_replace(», » «, $content);
$content = str_replace(», «rn», $content);
$striped_content = strip_tags($content);

return $striped_content;
}

public function convertToText() {

if(isset($this->filename) && !file_exists($this->filename)) {
return «File Not exists»;
}

$fileArray = pathinfo($this->filename);
$file_ext = $fileArray['extension'];
if($file_ext == «doc» || $file_ext == «docx»)
{
if($file_ext == «doc») {
return $this->read_doc();
} else {
return $this->read_docx();
}
} else {
return «Invalid File Type»;
}
}
}
?>

Комментарии

comments powered by Disqus