source: pmb4.2/trunk/fuentes/pmb/admin/connecteurs/in/entrez/pubmed_analyse_query.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 2.1 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: pubmed_analyse_query.class.php,v 1.2 2015-02-20 11:07:26 apetithomme Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($class_path."/analyse_query.class.php");
10
11class pubmed_analyse_query extends analyse_query{
12        var $pubmed_stopwords = array();
13
14    function pubmed_analyse_query($input,$debut=0,$parenthesis=0,$search_linked_words=1,$keep_empty=0,$field,$pubmed_stopwords) {
15        $this->pubmed_stopwords = $pubmed_stopwords;
16        $this->field = $field;
17        $this->operator = strtoupper($this->operator);
18        parent::analyse_query($input,0,0,1,0);
19    }
20       
21        function nettoyage_mot_vide($string) {
22                //Supression des espaces avant et après le terme
23                $string = trim($string);
24                //Décomposition en mots du mot nettoyé (ex : l'arbre devient l arbre qui donne deux mots : l et arbre)
25                $words=explode(" ",$string);
26                //Variable de stockage des mots restants après supression des mots vides
27                $words_empty_free=array();
28                //Pour chaque mot
29                for ($i=0; $i<count($words); $i++) {
30                        $words[$i]=trim($words[$i]);
31                        //Vérification que ce n'est pas un mot vide
32                        if (($this->keep_empty)||(in_array($words[$i],$this->pubmed_stopwords)===false)) {
33                                //Si ce n'est pas un mot vide, on stoque
34                                $words_empty_free[]=$words[$i];
35                        }
36                }
37                return $words_empty_free;
38        }
39       
40        //Affichage sous forme mathématique logique du résultat de l'analyse
41        function show_analyse($tree="") {
42                if ($tree=="") $tree=$this->tree;
43                foreach($tree as $elem){
44                        if($elem->start_with == 0){
45                                //PubMed veut ses opérateurs en MAJ
46                                if ($elem->operator) $r.=" ".strtoupper($elem->operator)." ";
47                                $r.="(";
48                                if ($elem->not) $r.="not";
49                                if ($elem->sub==null) {
50                                        if ($elem->literal) $r.="\"";
51                                        $r.=$elem->word;
52                                        if ($elem->literal) $r.="\"";
53                                        if ($elem->not) $r.=")";
54                                        $r.=$this->field;
55                                } else {
56                                        $r.="( ".$this->show_analyse($elem->sub).") ";
57                                }               
58                                $r.=")";                               
59                        }
60                }
61                return $r;
62        }
63}
64?>
Note: See TracBrowser for help on using the repository browser.