87,7 → 87,7 |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi, true); |
if(empty($liste_genre_espece)) { |
// Essai de recherche stricte en tentant de supprimer le nom d'auteur |
$nom_saisi_sans_auteur = $this->supprimerAuteur($nom_saisi); |
$nom_saisi_sans_auteur = self::supprimerAuteur($nom_saisi); |
if($nom_saisi_sans_auteur) { // ne pas faire la requête sur un mot vide |
$liste_genre_espece = $this->effectuerRequeteUrlRecherche($nom_saisi_sans_auteur, true); |
} |
110,30 → 110,29 |
return array_pop($resultat); |
} |
|
private function supprimerAuteur($nom_saisi) { |
// Attention le parseur de nom n'est pas fiable à 100% |
// mais ça marche dans la plupart des cas |
// à part les formules d'hybridité saisies avec un auteur |
static function supprimerAuteur($nom_saisi) { |
// TODO: gérer les hybrides |
$nameparser = new NameParser(); |
if($this->estUnHybride($nom_saisi) || $this->estUneFormuleHybridite($nom_saisi)) { |
if(self::estUnHybride($nom_saisi) || self::estUneFormuleHybridite($nom_saisi)) { |
$nom_decoupe = explode(' ', $nom_saisi); |
$derniere_position_hybride = end(array_keys($nom_decoupe, 'x')); |
$nom_saisi_sans_auteur = implode(' ',array_slice($nom_decoupe, 0, $derniere_position_hybride + 2)); |
} else { |
/* Attention le parseur de nom n'est pas fiable à 100% |
mais ça marche dans la plupart des cas |
à part les formules d'hybridité saisies avec un auteur */ |
$nameparser = new NameParser(); |
$auteur = $nameparser->parse_auth($nom_saisi); |
$nom_saisi_sans_auteur = str_replace($auteur, '', $nom_saisi); |
} |
|
$nom_saisi_sans_auteur = trim($nom_saisi_sans_auteur); |
return $nom_saisi_sans_auteur; |
return trim($nom_saisi_sans_auteur); |
} |
|
private function estUneFormuleHybridite($nom_saisi) { |
static function estUneFormuleHybridite($nom_saisi) { |
return strpos($nom_saisi,' x ') !== false; |
} |
|
private function estUnHybride($nom_saisi) { |
static function estUnHybride($nom_saisi) { |
return strpos($nom_saisi,'x ') === 0; |
} |
|