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