source: spip-zone/_plugins_/extraire_documents/trunk/extraire/defaut/10_tika_server.php @ 104193

Last change on this file since 104193 was 104193, checked in by guy.cesaro@…, 3 years ago

oups

File size: 2.6 KB
Line 
1<?php
2
3/**
4 * Tester si cette méthode d'extraction est disponible
5 **/
6function extraire_defaut_10_tika_server_test_dist($mime) {
7        include_spip('inc/distant');
8        include_spip('inc/config');
9
10        $url_serveur = (lire_config('extrairedoc_config/url_serveur')!='') ? lire_config('extrairedoc_config/url_serveur') : 'localhost';
11        $port = (lire_config('extrairedoc_config/port')!='') ? lire_config('extrairedoc_config/port') : 9998;
12        // On cherche si le serveur Tika est bien lancé en local (valeurs peut-être à configurer…)
13        $tika_version = recuperer_page($url_serveur.':'.$port.'/version');
14       
15        if (
16                strpos($tika_version, 'Apache Tika') !== false
17                // pas de image/truc pour l'instant avec Tika,
18                // sinon par défaut on va chercher à extraire des centaines ou des milliers d'images suivant les sites…
19                and strpos($mime, 'image') !== 0
20        ) {
21                return true;
22        }
23        else {
24                return false;
25        }
26}
27
28/**
29 * Extraire le contenu pour le mime type pdf
30 *
31 *
32 * @param $fichier le fichier à traiter
33 * @return Scontenu le contenu brut
34 **/
35function extraire_defaut_10_tika_server_extraire_dist($fichier, $infos) {
36    $infos = array('contenu' => false, 'metadata' => false);
37    $contenu = '';
38        include_spip('inc/config');
39
40        $url_serveur = (lire_config('extrairedoc_config/url_serveur')!='') ? lire_config('extrairedoc_config/url_serveur') : 'localhost';
41        $port = (lire_config('extrairedoc_config/port')!='') ? lire_config('extrairedoc_config/port') : 9998;
42
43    // Bespoin de charger composer
44    if (!class_exists('Composer\\Autoload\\ClassLoader')) {
45                include_spip('lib/Composer/Autoload/ClassLoader');
46        }
47
48    $loader = new \Composer\Autoload\ClassLoader();
49
50    // On définit le bon chemin pour le namespace de la librairie nécessaire
51    $loader->addPsr4('Vaites\\ApacheTika\\', _DIR_PLUGIN_EXTRAIREDOC . 'lib/vaites/php-apache-tika/src');
52    $loader->register();
53       
54        // On récupère le client pour discuter avec Tika
55        $client = \Vaites\ApacheTika\Client::make($url_serveur, $port);
56       
57        // On tente de récupérer le texte brut du fichier
58    try {
59        set_time_limit (0);
60        $contenu = $client->getText(_DIR_RACINE . $fichier);
61                $metadata = (array) $client->getMetadata(_DIR_RACINE . $fichier);
62                $meta = (array) $metadata['meta'];
63    }
64    catch (Exception $e) {
65        //Pour toute exception on s'arrete et on retourne un contenu vide
66        //Les cas de figure sont entre autre les fichiers mal formés ou signés
67        return '';
68    }
69   
70    //Libérer les ressources
71    unset($client);
72    unset($loader);
73       
74        // Si on a trouvé du texte
75        if ($contenu) {
76                $infos['contenu'] = $contenu;
77                $infos['titre'] = $metadata['title'];
78
79        }
80       
81    return $infos;
82}
Note: See TracBrowser for help on using the repository browser.