我正在尝试使用下面的代码阅读docx文件,这工作正常,但我的docx文件有粗体,标题等,但下面的代码显示与word文档不同。
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));
zip_entry_close($zip_entry);
}// end while
zip_close($zip);
//echo $content;
//echo "<hr>";
//file_put_contents('1.xml', $content);
$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;
}
$filename = "testing.docx";// or /var/www/html/file.docx
$content = read_file_docx($filename);
if($content !== false) {
$viewResume = nl2br($content);
$str = $viewResume;
$keyword = 'When';
$str = preg_replace("/\b([a-z]*${keyword}[a-z]*)\b/i","<b style='color:#F00;'>$1</b>",$str);
echo "$str";
echo preg_match_all('([^\.\!\?]+)',$str,$keyword);
}
else {
echo 'Couldn\'t the file. Please check that file.';
}