Commit | Line | Data |
---|---|---|
c495c100 P |
1 | <?php |
2 | ||
3 | // | |
4 | // Lit un document 'rtf' 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_rtf | |
14 | function extracteur_rtf($fichier, &$charset) { | |
15 | ||
16 | $charset = 'iso-8859-1'; | |
17 | ||
18 | @exec('metamail -d -q -b -c application/rtf '.escapeshellarg($fichier), $r, $e); | |
19 | if (!$e) return @join(' ', $r); | |
20 | ||
21 | # wvText | |
22 | # http://wvware.sourceforge.net/ | |
23 | $temp = tempnam(_DIR_CACHE, 'rtf'); | |
24 | @exec('wvText '.escapeshellarg($fichier).'> '.$temp, $r, $e); | |
25 | lire_fichier($temp, $contenu); | |
26 | @unlink($temp); | |
27 | if (!$e) return $contenu; | |
28 | ||
29 | ||
30 | # unrtf | |
31 | # http://www.gnu.org/software/unrtf/unrtf.html | |
32 | # --html car avec --text les accents sont perdus :( | |
33 | @exec('unrtf --html '.escapeshellarg($fichier), $r, $e); | |
34 | if (!$e) return join(' ', $r); | |
35 | ||
36 | # catdoc | |
37 | # http://www.45.free.net/~vitus/ice/catdoc/ | |
38 | @exec('catdoc '.escapeshellarg($fichier), $r, $e); | |
39 | if (!$e) return join(' ', $r); | |
40 | ||
41 | } | |
42 | ||
43 | // Sait-on extraire ce format ? | |
44 | // TODO: ici tester si les binaires fonctionnent | |
45 | $GLOBALS['extracteur']['rtf'] = 'extracteur_rtf'; | |
46 | ||
47 | ?> |