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

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

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

File size: 1.6 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}
14function odt2text($filename) {
15    return readZippedXML($filename, "content.xml");
16}
17function readZippedXML($archiveFile, $dataFile) {
18    // Creation d'une archive ZIP
19    $zip = new ZipArchive;
20
21    // Ouvrir l'archive ZIP
22    if (true === $zip->open($archiveFile)) {
23        // Si c'est bon, rechercher du fichier de donnees (passe en argument) dans l'archive.
24        if (($index = $zip->locateName($dataFile)) !== false) {
25            //Si le fichier est trouve, lire les chaines de caracteres.
26            $data = $zip->getFromIndex($index);
27            // Fermez le zip
28            $zip->close();
29            // Charger le XML d'une chaine de caractere
30            // Passez les errors et les warnings
31            $xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
32            // Renvoyer les donnees  sans les tags XML de formatage
33            return strip_tags($xml->saveXML());
34        }
35        $zip->close();
36    }
37
38    // En cas d'echec, on renvoit une chaine vide
39    return "";
40} 
41?>
Note: See TracBrowser for help on using the repository browser.