Line 193... |
Line 193... |
193 |
// renomme le fichier pour lui ajouter son extension initiale, ce qui
|
193 |
// renomme le fichier pour lui ajouter son extension initiale, ce qui
|
194 |
// permet (une sorte) d'autodétection du format.
|
194 |
// permet (une sorte) d'autodétection du format.
|
195 |
$fichier = $infos_fichier['tmp_name'];
|
195 |
$fichier = $infos_fichier['tmp_name'];
|
196 |
$extension = pathinfo($infos_fichier['name'], PATHINFO_EXTENSION);
|
196 |
$extension = pathinfo($infos_fichier['name'], PATHINFO_EXTENSION);
|
197 |
if( (strlen($extension) == 3 || strlen($extension) == 4) &&
|
197 |
if( (strlen($extension) == 3 || strlen($extension) == 4) &&
|
198 |
(rename($fichier, $fichier . '.' . $extension))) {
|
198 |
(@rename($fichier, $fichier . '.' . $extension))) {
|
199 |
$fichier = $fichier . '.' . $extension;
|
199 |
$fichier = $fichier . '.' . $extension;
|
200 |
}
|
200 |
}
|
Line 201... |
Line 201... |
201 |
|
201 |
|
202 |
$objReader = PHPExcel_IOFactory::createReaderForFile($fichier);
|
202 |
$objReader = PHPExcel_IOFactory::createReaderForFile($fichier);
|
Line -... |
Line 203... |
- |
|
203 |
$objReader->setReadDataOnly(true);
|
203 |
$objReader->setReadDataOnly(true);
|
204 |
|
204 |
|
205 |
// TODO: is_a obsolete entre 5.0 et 5.3, retirer le @ à terme
|
205 |
if(is_a($objReader, 'PHPExcel_Reader_CSV')) {
|
206 |
if(@is_a($objReader, 'PHPExcel_Reader_CSV')) {
|
206 |
$objReader->setDelimiter(',')
|
207 |
$objReader->setDelimiter(',')
|
207 |
->setEnclosure('"')
|
208 |
->setEnclosure('"')
|
208 |
->setLineEnding("\n")
|
209 |
->setLineEnding("\n")
|
Line 573... |
Line 574... |
573 |
// $timestamp = PHPExcel_Calculation::getInstance()->calculateFormula("=" . $date . "-DATE(1970,1,1)*60*60*24"); // NON
|
574 |
// $timestamp = PHPExcel_Calculation::getInstance()->calculateFormula("=" . $date . "-DATE(1970,1,1)*60*60*24"); // NON
|
Line 574... |
Line 575... |
574 |
|
575 |
|
575 |
// echo strftime("%Y/%m/%d 00:00:00", $timestamp); // NON
|
576 |
// echo strftime("%Y/%m/%d 00:00:00", $timestamp); // NON
|
576 |
}
|
577 |
}
|
- |
|
578 |
else {
|
- |
|
579 |
// attend l'un des formats de
|
- |
|
580 |
// http://www.php.net/manual/fr/datetime.formats.date.php
|
577 |
else {
|
581 |
// le plus simple: YYYY/MM/DD (utilisé à l'export)
|
578 |
$timestamp = strtotime($date);
|
582 |
$timestamp = strtotime($date);
|
579 |
if(! $timestamp) {
|
583 |
if(! $timestamp) {
|
580 |
if($date) trigger_error("ligne \"{$ligne[C_NOM_SEL]}\": Attention: date erronée ($date)", E_USER_NOTICE);
|
584 |
if($date) trigger_error("ligne \"{$ligne[C_NOM_SEL]}\": Attention: date erronée ($date)", E_USER_NOTICE);
|
581 |
return NULL;
|
585 |
return NULL;
|
582 |
}
|
586 |
}
|
583 |
return strftime("%Y-%m-%d 00:00:00", strtotime($date));
|
587 |
return strftime("%Y-%m-%d 00:00:00", $timestamp);
|
584 |
}
|
588 |
}
|
Line 585... |
Line 589... |
585 |
}
|
589 |
}
|
586 |
|
590 |
|
Line 634... |
Line 638... |
634 |
if($lat < $bbox['NORD'] && $lat > $bbox['SUD']) return is_numeric($lat) ? $lat : NULL;
|
638 |
if($lat < $bbox['NORD'] && $lat > $bbox['SUD']) return is_numeric($lat) ? $lat : NULL;
|
635 |
return NULL;
|
639 |
return NULL;
|
636 |
}
|
640 |
}
|
637 |
}
|
641 |
}
|
Line -... |
Line 642... |
- |
|
642 |
|
- |
|
643 |
/*
|
- |
|
644 |
TODO: s'affranchir du webservice pour la détermination du nom scientifique en s'appuyant sur cel_references,
|
638 |
|
645 |
pour des questions de performances
|
639 |
|
646 |
*/
|
640 |
static function traiterEspece($ligne, Array &$espece, $cel) {
|
647 |
static function traiterEspece($ligne, Array &$espece, $cel) {
|
Line 641... |
Line 648... |
641 |
if(!$ligne[C_NOM_SEL]) return;
|
648 |
if(!$ligne[C_NOM_SEL]) return;
|
642 |
|
649 |
|
Line 646... |
Line 653... |
646 |
$taxon_info_webservice = new RechercheInfosTaxonBeta($cel->config);
|
653 |
$taxon_info_webservice = new RechercheInfosTaxonBeta($cel->config);
|
Line 647... |
Line 654... |
647 |
|
654 |
|
Line 648... |
Line 655... |
648 |
$ascii = iconv('UTF-8', 'ASCII//TRANSLIT', $ligne[C_NOM_SEL]);
|
655 |
$ascii = iconv('UTF-8', 'ASCII//TRANSLIT', $ligne[C_NOM_SEL]);
|
649 |
|
656 |
|
650 |
// TODO: si empty(C_NOM_SEL) et !empty(C_NOM_SEL_NN) : recherche info à partir de C_NOM_SEL_NN
|
657 |
// TODO: si empty(C_NOM_SEL) et !empty(C_NOM_SEL_NN) : recherche info à partir de C_NOM_SEL_NN
|
651 |
echo "rechercherInformationsComplementairesSurNom()\n";
|
658 |
// echo "rechercherInformationsComplementairesSurNom()\n";
|
652 |
/*
|
659 |
/*
|
653 |
SELECT num_nom, nom_sci, num_nom_retenu ,auteur, annee, biblio_origine, nom_sci,auteur FROM bdtfx_v1_01 WHERE (nom_sci LIKE 'Heliotropium europaeum') ORDER BY nom_sci ASC LIMIT 0, 1
|
660 |
SELECT num_nom, nom_sci, num_nom_retenu ,auteur, annee, biblio_origine, nom_sci,auteur FROM bdtfx_v1_01 WHERE (nom_sci LIKE 'Heliotropium europaeum') ORDER BY nom_sci ASC LIMIT 0, 1
|
654 |
#
|
661 |
#
|
Line 675... |
Line 682... |
675 |
}
|
682 |
}
|
Line 676... |
Line 683... |
676 |
|
683 |
|
677 |
// succès de la détection = écrasement du numéro nomenclatural saisi...
|
684 |
// succès de la détection = écrasement du numéro nomenclatural saisi...
|
678 |
$espece[C_NOM_SEL_NN] = $resultat_recherche_espece[0][0];
|
685 |
$espece[C_NOM_SEL_NN] = $resultat_recherche_espece[0][0];
|
- |
|
686 |
// et des info complémentaires
|
679 |
// et des info complémentaires
|
687 |
|
680 |
echo "rechercherInformationsComplementairesSurNumNom()\n";
|
688 |
// echo "rechercherInformationsComplementairesSurNumNom()\n";
|
681 |
$complement = $taxon_info_webservice->rechercherInformationsComplementairesSurNumNom($resultat_recherche_espece[0][0]);
|
689 |
$complement = $taxon_info_webservice->rechercherInformationsComplementairesSurNumNom($resultat_recherche_espece[0][0]);
|
682 |
/*
|
690 |
/*
|
683 |
// GET /service:eflore:0.1/bdtfx/noms/31468?retour.champs=nom_sci,auteur,id,nom_retenu_complet,nom_retenu.id,num_taxonomique,famille
|
691 |
// GET /service:eflore:0.1/bdtfx/noms/31468?retour.champs=nom_sci,auteur,id,nom_retenu_complet,nom_retenu.id,num_taxonomique,famille
|
684 |
/home/raphael/eflore/projets/services/modules/0.1/bdtfx/Noms.php:280
|
692 |
/home/raphael/eflore/projets/services/modules/0.1/bdtfx/Noms.php:280
|
Line 688... |
Line 696... |
688 |
*/
|
696 |
*/
|
689 |
$espece[C_NOM_RET] = $complement['Nom_Retenu'];
|
697 |
$espece[C_NOM_RET] = $complement['Nom_Retenu'];
|
690 |
$espece[C_NOM_RET_NN] = $complement['Num_Nom_Retenu'];
|
698 |
$espece[C_NOM_RET_NN] = $complement['Num_Nom_Retenu'];
|
691 |
$espece[C_NT] = $complement['Num_Taxon'];
|
699 |
$espece[C_NT] = $complement['Num_Taxon'];
|
692 |
$espece[C_FAMILLE] = $complement['Famille'];
|
700 |
$espece[C_FAMILLE] = $complement['Famille'];
|
693 |
var_dump("a", $espece);die;
|
701 |
//var_dump("a", $espece);die;
|
694 |
}
|
702 |
}
|
Line 695... |
Line 703... |
695 |
|
703 |
|
696 |
static function detectFromNom($nom, $cel) {
|
704 |
static function detectFromNom($nom, $cel) {
|
697 |
$r = $cel->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s') ".
|
705 |
$r = $cel->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s') ".
|