source: spip-zone/_plugins_/fulltext/trunk/lib/fonctions_zip.php @ 85892

Last change on this file since 85892 was 85892, checked in by kent1@…, 5 years ago

Indentation

File size: 1.4 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5//Fonctions necessaires pour l'extraction des fichiers .odt/.docx
6// Necessite PHP 5.2+
7// Necessite php_zip.dll sous Winwows
8// Necessite -le paramètre -enable-zip pour Linux.
9// Si vous ne pouvez pas utiliser ZipArchive (librairies manquantes ou vieille version de PHP), vous pouvez utiliser la librairie PclZip ( http://www.phpconcept.net/pclzip )
10
11function docx2text($filename) {
12        return readZippedXML($filename, "word/document.xml");
13}
14
15function odt2text($filename) {
16        return readZippedXML($filename, "content.xml");
17}
18
19function readZippedXML($archiveFile, $dataFile) {
20        // Creation d'une archive ZIP
21        $zip = new ZipArchive;
22
23        // Ouvrir l'archive ZIP
24        if (true === $zip -> open($archiveFile)) {
25                // Si c'est bon, rechercher du fichier de donnees (passe en argument) dans l'archive.
26                if (($index = $zip -> locateName($dataFile)) !== false) {
27                        //Si le fichier est trouve, lire les chaines de caracteres.
28                        $data = $zip -> getFromIndex($index);
29                        // Fermez le zip
30                        $zip -> close();
31                        // Charger le XML d'une chaine de caractere
32                        // Passez les errors et les warnings
33                        $xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
34                        // Renvoyer les donnees  sans les tags XML de formatage
35                        return strip_tags($xml -> saveXML());
36                }
37                $zip -> close();
38        }
39
40        // En cas d'echec, on renvoit une chaine vide
41        return "";
42}
43?>
Note: See TracBrowser for help on using the repository browser.