Line 83... |
Line 83... |
83 |
}
|
83 |
}
|
Line 84... |
Line 84... |
84 |
|
84 |
|
85 |
public function rechercherInformationsComplementairesSurNom($nom_saisi) {
|
85 |
public function rechercherInformationsComplementairesSurNom($nom_saisi) {
|
86 |
$nom_saisi = trim($nom_saisi);
|
86 |
$nom_saisi = trim($nom_saisi);
|
87 |
// Essai de recherche sur le nom saisi tel quel
|
87 |
// Essai de recherche sur le nom saisi tel quel
|
88 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, true);
|
88 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, 'stricte');
|
- |
|
89 |
if($liste_genre_espece) return $liste_genre_espece;
|
89 |
if(empty($liste_genre_espece)) {
|
90 |
|
90 |
// Essai de recherche stricte en tentant de supprimer le nom d'auteur
|
- |
|
91 |
$nom_saisi_sans_auteur = self::supprimerAuteur($nom_saisi);
|
91 |
// Essai de recherche stricte en tentant de supprimer le nom d'auteur
|
92 |
if($nom_saisi_sans_auteur) { // ne pas faire la requête sur un mot vide
|
92 |
if( ($nom_saisi_sans_auteur = self::supprimerAuteur($nom_saisi)) ) { // ne pas faire la requête sur un mot vide
|
93 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi_sans_auteur, true);
|
- |
|
94 |
}
|
- |
|
95 |
if(empty($liste_genre_espece)) {
|
- |
|
96 |
// Dernière tentative : essai de recherche étendue
|
- |
|
97 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, false);
|
- |
|
98 |
}
|
93 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi_sans_auteur, 'stricte');
|
- |
|
94 |
}
|
- |
|
95 |
if($liste_genre_espece) return $liste_genre_espece;
|
- |
|
96 |
|
- |
|
97 |
// avant-dernière tentative : essai de recherche étendue
|
- |
|
98 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, 'etendue');
|
- |
|
99 |
if($liste_genre_espece) return $liste_genre_espece;
|
- |
|
100 |
|
- |
|
101 |
// dernière tentative: concaténation (nom_sci,auteur) (= nom-retenu généré utilisé comme nom_sci)
|
- |
|
102 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, 'concat');
|
99 |
}
|
103 |
|
100 |
return $liste_genre_espece;
|
104 |
return $liste_genre_espece;
|
Line 101... |
Line 105... |
101 |
}
|
105 |
}
|
102 |
|
106 |
|
103 |
private function effectuerRequeteUrlRecherche($nom_saisi, $stricte = true) {
|
107 |
private function effectuerRequeteUrlRecherche($nom_saisi, $mode = 'stricte') {
|
104 |
$res = @json_decode(file_get_contents(sprintf('%1$s?masque=%2$s&recherche=%3$s&ns.format=txt&retour.champs=%4$s&navigation.limite=1',
|
108 |
$res = @json_decode(file_get_contents(sprintf('%1$s?masque=%2$s&recherche=%3$s&ns.format=txt&retour.champs=%4$s&navigation.limite=1',
|
105 |
$this->url_service_nom,
|
109 |
$this->url_service_nom,
|
106 |
urlencode($nom_saisi),
|
110 |
urlencode($nom_saisi),
|
107 |
($stricte ? 'stricte' : 'etendue'),
|
111 |
$mode,
|
108 |
implode(',', array("id","nom_sci","auteur","nom_retenu.id","famille","num_taxonomique","nom_retenu_complet")))));
|
112 |
implode(',', array("id","nom_sci","auteur","nom_retenu.id","famille","num_taxonomique","nom_retenu_complet")))));
|
109 |
if(!$res) return NULL;
|
113 |
if(!$res) return NULL;
|
110 |
$resultat = (array)$res->resultat;
|
114 |
$resultat = (array)$res->resultat;
|