Maison >développement back-end >tutoriel php >Comment lire des fichiers DOCX en PHP sans caractères superflus ?
Comment lire des fichiers DOC en PHP
Lorsque vous essayez de lire des fichiers DOC ou DOCX en PHP, vous pouvez rencontrer des problèmes avec des caractères superflus dans la fin de votre texte. Cette erreur se produit car l'extrait de code fourni est incapable d'analyser correctement le format DOC.
Pour résoudre ce problème, nous devons légèrement modifier notre approche car PHP ne prend pas en charge l'analyse native des fichiers DOC. Au lieu de cela, nous utiliserons une méthode différente pour gérer les fichiers DOCX.
Code mis à jour pour la lecture des fichiers 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; } $filename = "filepath";// or /var/www/html/file.docx $content = read_file_docx($filename); if($content !== false) { echo nl2br($content); } else { echo 'Couldn\'t the file. Please check that file.'; }</code>
Ce code mis à jour utilise la classe PHP ZipArchive pour ouvrez et lisez le contenu du fichier DOCX. Plus précisément, il extrait le fichier « word/document.xml » de l'archive ZIP, qui contient le contenu textuel réel.
En utilisant cette méthode, vous pouvez lire et analyser avec succès les fichiers DOCX en PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!