Commit | Line | Data |
---|---|---|
c495c100 P |
1 | <?php |
2 | ||
3 | // | |
4 | // Lit un document 'doc' et extrait son contenu en texte brut | |
5 | // | |
6 | ||
7 | // NOTE : l'extracteur n'est pas oblige de convertir le contenu dans | |
8 | // le charset du site, mais il *doit* signaler le charset dans lequel | |
9 | // il envoie le contenu, de facon a ce qu'il soit converti au moment | |
10 | // voulu ; dans le cas contraire le document sera lu comme s'il etait | |
11 | // dans le charset iso-8859-1 | |
12 | ||
13 | // http://doc.spip.org/@extracteur_doc | |
14 | function extracteur_doc($fichier, &$charset) { | |
15 | ||
16 | $charset = 'iso-8859-1'; | |
17 | ||
18 | @exec('metamail -d -q -b -c application/msword '.escapeshellarg($fichier), $r, $e); | |
19 | if (!$e) return @join(' ', $r); | |
20 | ||
21 | # wvText | |
22 | # http://wvware.sourceforge.net/ | |
23 | $temp = tempnam(_DIR_CACHE, 'doc'); | |
24 | @exec('wvText '.escapeshellarg($fichier).'> '.$temp, $r, $e); | |
25 | lire_fichier($temp, $contenu); | |
26 | @unlink($temp); | |
27 | if (!$e) return $contenu; | |
28 | ||
29 | # antiword | |
30 | # http://www.winfield.demon.nl/ | |
31 | @exec('antiword '.escapeshellarg($fichier), $r, $e); | |
32 | if (!$e) return @join(' ', $r); | |
33 | ||
34 | # catdoc | |
35 | # http://www.45.free.net/~vitus/ice/catdoc/ | |
36 | @exec('catdoc '.escapeshellarg($fichier), $r, $e); | |
37 | if (!$e) return @join(' ', $r); | |
38 | ||
39 | } | |
40 | ||
41 | // Sait-on extraire ce format ? | |
42 | // TODO: ici tester si les binaires fonctionnent | |
43 | $GLOBALS['extracteur']['doc'] = 'extracteur_doc'; | |
44 | ||
45 | ?> |