由于二进制格式,在 PHP 中读取 .DOC 文件可能具有挑战性。不过,您可以使用某人提供的代码来解析它们,但这可能会导致字符解释不正确。
要解决此问题,您需要进行以下修改:
<code class="php">$line = @fread($fileHandle, filesize($userDoc)); $lines = explode(chr(0x0A),$line);</code>
此更改将字符 chr(0x0D) 替换为 chr(0x0A)。 Windows 将换行符存储为 rn(回车加换行),而 UNIX 系统使用 n(仅换行)。通过使用 chr(0x0D),您正在处理 DOS/Windows 换行符,但文件以 Unix 格式存储。
此外,请考虑使用以下代码在 PHP 中读取 .docx 文件:
<code class="php">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); $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; }</code>
此代码:
以上是如何在 PHP 中正确解析 .DOC 文件并避免字符解释错误?的详细内容。更多信息请关注PHP中文网其他相关文章!