2012-07-05 16:32:35 +02:00
< ? php
2012-07-05 17:52:34 +02:00
/*
0 9 * * 1 - 5 / var / www / batch / getAsso . php - c >> / var / www / log / getAsso . log
*/
require_once realpath ( dirname ( __FILE__ )) . '/includes/config.php' ;
2012-07-05 16:32:35 +02:00
include_once ( FWK_PATH . 'common/chiffres.php' );
include_once ( FWK_PATH . 'common/dates.php' );
include_once ( INCLUDE_PATH . 'bodacc/classMBodacc.php' );
include_once ( INCLUDE_PATH . 'insee/classMInsee.php' );
include_once ( FWK_PATH . 'mail/sendMail.php' );
$tabInfosGlobal = array ();
$repPdfAssoCpt = '/home/data/datafile/associations/bilans/' ;
function getNextDate ( $dateCour , $nbJours = 7 ) {
$nextDate = date ( 'Ymd' , mktime ( 0 , 0 , 0 , WDate :: dateT ( 'Ymd' , 'm' , $dateCour ), WDate :: dateT ( 'Ymd' , 'd' , $dateCour ) + $nbJours , WDate :: dateT ( 'Ymd' , 'Y' , $dateCour )));
return $nextDate ;
}
//print_r(getPdfInfo('/home/data/bilans_asso/333512119_31122006.pdf'));
//die();
/* $tabReg = array ( '' , // Test pour r<> cup<75> rer les manquants
'Aquitaine' , // Aquitaine
'Alsace' , // Alsace
'Auvergne' , // Auvergne
'Basse-Normandie' , // Basse-Normandie
'Bourgogne' , // Bourgogne
'Bretagne' , // Bretagne
'Centre' , // Centre
'Champagne' , // Champagne
'Corse' , // Corse
'Franche-Comt<6D> ' , // Franche-Comt<6D>
'Haute-Normandie' , // Haute-Normandie
'<27> le-de-France' , // <20> le-de-France
'Languedoc-Roussillon' , // Languedoc-Roussillon
'Limousin' , // Limousin
'Lorraine' , // Lorraine
'Midi Pyr<79> n<EFBFBD> es' , // Midi Pyr<79> n<EFBFBD> es
'Nord-Pas-de-Calais' , // Nord-Pas-de-Calais
'Outre-Mer' , // Outre-Mer
'Pays-de-la-Loire' , // Pays-de-la-Loire
'Picardie' , // Picardie
'Poitou-Charentes' , // Poitou-Charentes
'Provence-Alpes-C<> te-d\'Azur' , // Provence-Alpes-C<> te-d'Azur
'Rh<52> ne-Alpes' ,); // Rh<52> ne-Alpes
); */
global $tabDep ;
$tabDep = array ( 'Dordogne' => '24' ,
'Gironde' => '33' ,
'Landes' => '40' ,
'Lot-et-Garonne' => '47' ,
'Pyr<79> n<EFBFBD> es-Atlantiques' => '64' ,
'Bas-Rhin' => '67' ,
'Haut-Rhin' => '68' ,
'Allier' => '03' ,
'Cantal' => '15' ,
'Haute-Loire' => '43' ,
'Puy-de-D<> me' => '63' ,
'Calvados' => '14' ,
'Manche' => '50' ,
'Orne' => '61' ,
'C<> te-d\'Or' => '21' ,
'Ni<4E> vre' => '58' ,
'Sa<53> ne-et-Loire' => '71' ,
'Yonne' => '89' ,
'C<> tes-d\'Armor' => '22' ,
'Finist<73> re' => '29' ,
'Ille-et-Vilaine' => '35' ,
'Morbihan' => '56' ,
'Cher' => '18' ,
'Eure-et-Loir' => '28' ,
'Indre' => '36' ,
'Indre-et-Loire' => '37' ,
'Loir-et-Cher' => '41' ,
'Loiret' => '45' ,
'Ardennes' => '08' ,
'Aube' => '10' ,
'Haute-Marne' => '52' ,
'Marne' => '51' ,
'Corse-du-sud' => '2A' ,
'Haute-Corse' => '2B' ,
'Doubs' => '25' ,
'Haute-Sa<53> ne' => '70' ,
'Jura' => '39' ,
'Territoire-de-Belfort' => '90' ,
'Eure' => '27' ,
'Seine-Maritime' => '76' ,
'Essonne' => '91' ,
'Hauts-de-Seine' => '92' ,
'Paris' => '75' ,
'Seine-et-Marne' => '77' ,
'Seine-Saint-Denis' => '93' ,
'Val-d\'Oise' => '95' ,
'Val-de-Marne' => '94' ,
'Yvelines' => '78' ,
'Aude' => '11' ,
'Gard' => '30' ,
'H<> rault' => '34' ,
'Loz<6F> re' => '48' ,
'Pyr<79> n<EFBFBD> es-Orientales' => '66' ,
'Corr<72> ze' => '19' ,
'Creuse' => '23' ,
'Haute-Vienne' => '87' ,
'Moselle' => '57' ,
'Meurthe-et-Moselle' => '54' ,
'Meuse' => '55' ,
'Vosges' => '88' ,
'Ari<72> ge' => '09' ,
'Aveyron' => '12' ,
'Gers' => '32' ,
'Haute-Garonne' => '31' ,
'Hautes-Pyr<79> n<EFBFBD> es' => '65' ,
'Lot' => '46' ,
'Tarn' => '81' ,
'Tarn-et-Garonne' => '82' ,
'Nord' => '59' ,
'Pas-de-calais' => '62' ,
'Guadeloupe' => '971' ,
'Guyane' => '973' ,
'Martinique' => '972' ,
'R<> union' => '974' ,
'Saint-Pierre-et-Miquelon' => '975' ,
'Mayotte' => '976' ,
'Loire-Atlantique' => '44' ,
'Maine-et-Loire' => '49' ,
'Mayenne' => '53' ,
'Sarthe' => '72' ,
'Vend<6E> e' => '85' ,
'Aisne' => '02' ,
'Oise' => '60' ,
'Somme' => '80' ,
'Charente' => '16' ,
'Charente-Maritime' => '17' ,
'Deux-S<> vres' => '79' ,
'Vienne' => '86' ,
'Alpes-de-Haute-Provence' => '04' ,
'Alpes-Maritimes' => '06' ,
'Bouches-du-Rhone' => '13' ,
'Hautes-Alpes' => '05' ,
'Var' => '83' ,
'Vaucluse' => '84' ,
'Ain' => '01' ,
'Ard<72> che' => '07' ,
'Dr<44> me' => '26' ,
'Haute-Savoie' => '74' ,
'Is<49> re' => '38' ,
'Loire' => '42' ,
'Rh<52> ne' => '69' ,
'Savoie' => '73' ,);
/* $tabReg = array ( //'R1', // ALSACE
'R2' , // AQUITAINE
'R3' , // AUVERGNE
'R4' , // BOURGOGNE
'R5' , // BRETAGNE
'R6' , // CENTRE
'R7' , // CHAMPAGNE-ARDENNES
'R8' , // CORSE
'R9' , // FRANCHE-COMTE;
'R10' , // ILE-DE-FRANCE
'R11' , // LANGUEDOC-ROUSSILLON
'R12' , // LIMOUSIN
'R13' , // LORRAINE
'R14' , // MIDI-PYRENEES
'R15' , // NORD-PAS-DE-CALAIS
'R16' , // BASSE-NORMANDIE
'R17' , // HAUTE-NORMANDIE
'R18' , // PAYS-DE-LA-LOIRE
'R19' , // PICARDIE
'R20' , // POITOU-CHARENTES
'R21' , // PROVENCE-ALPES-COTE-D'AZUR
'R22' , // RHONE-ALPES
'R100' , ); // OUTRE-MER
*/
function getInfosAnnonceAsso ( $annonceHtml , $depotComptes = false ) {
$tabAnn = array ();
global $tabDep ;
global $iInsee ;
$tabAnn [ 'Assoc_Nom' ] = htm2txt ( @ getTextInHtml ( $annonceHtml , '<p>Association : <b>' , '<b>' , '</b>' ));
if ( substr ( $tabAnn [ 'Assoc_Nom' ], - 1 ) == '.' )
$tabAnn [ 'Assoc_Nom' ] = substr ( $tabAnn [ 'Assoc_Nom' ], 0 , - 1 );
// $tabAnn['Siret']='';//@getTextInHtml($annonceHtml, '<p>No/Identifiant : <b>', '<b>', '</b>');
$tabAnn [ 'Siren' ] = str_replace ( ' ' , '' , strtr ( htm2txt ( @ getTextInHtml ( $annonceHtml , '<p>Siren : <b>' , '<b>' , '</b>' )), ' .-/;,' , ' ' )) * 1 ;
$tabAnn [ 'sirenValide' ] = $iInsee -> valideSiren ( $tabAnn [ 'Siren' ]);
$tabAnn [ 'Waldec' ] = strtoupper ( @ getTextInHtml ( $annonceHtml , '<p>Identification R.N.A. : <b>' , '<b>' , '</b>' ));
$tabAnn [ 'Annonce_Html' ] = str_replace ( '</p>' , '' , str_replace ( chr ( 160 ), ' ' , html_entity_decode ( @ getTextInHtml ( $annonceHtml , '<p align="LEFT"><br>' , '<br>' , '</p>' ))));
if ( $tabAnn [ 'Annonce_Html' ] == '' ) // Les fondations n'ont pas le m<> me corps HTML
$tabAnn [ 'Annonce_Html' ] = str_replace ( '</p>' , '' , str_replace ( chr ( 160 ), ' ' , html_entity_decode ( @ getTextInHtml ( $annonceHtml , '<p align="left"></p> <p align="left">' , '</p> <p align="left">' , '</p>' ))));
if ( $tabAnn [ 'Annonce_Html' ] == '' ) // Les fondations n'ont pas le m<> me corps HTML
$tabAnn [ 'Annonce_Html' ] = '#####' . str_replace ( chr ( 160 ), ' ' , html_entity_decode ( $annonceHtml ));
if ( $depotComptes ) {
$tmp =@ getTextInHtml ( $annonceHtml , 'Date de cl<63> ture de l\'exercice : <b>' , '<b>' , '</b>' );
$tabAnn [ 'dateCloture' ] = WDate :: dateT ( 'd/m/Y' , 'Y-m-d' , $tmp );
$tabAnn [ 'pdfLink' ] =@ getTextInHtml ( $annonceHtml , '<a href="/' , '/' , '">' );
$tabAnn [ 'typeCompte' ] =@ getTextInHtml ( $annonceHtml , '<a href="/' , '">>' , '</a>' );
$tabAnn [ 'dateInsert' ] = date ( 'YmdHis' );
} else {
$tabAnn [ 'nic' ] = 0 ;
$tabAnn [ 'nicValide' ] = 0 ;
$tabAnn [ 'Activite' ] = htm2txt ( @ getTextInHtml ( $annonceHtml , 'Activité(s) : <b>' , '<b>' , '</b>' ));
$tabAnn [ 'Num_Annonce' ] =@ getTextInHtml ( $annonceHtml , 'No d\'annonce : <b>' , '<b>' , '</b>' );
$tmp =@ getTextInHtml ( $annonceHtml , 'Paru le : <b>' , '<b>' , '</b>' );
$tabAnn [ 'Date_Parution' ] = substr ( $tmp , 6 , 4 ) . '-' . substr ( $tmp , 3 , 2 ) . '-' . substr ( $tmp , 0 , 2 );
$tabAnn [ 'Num_Parution' ] =@ getTextInHtml ( $annonceHtml , 'No de parution : <b>' , '<b>' , '</b>' );
$depReg = trim ( htm2txt ( @ getTextInHtml ( $annonceHtml , 'Département (Région) : <b>' , '<b>' , '</b></p>' )));
$tabDepReg = explode ( '(' , $depReg );
$dep = trim ( $tabDepReg [ 0 ]);
$numDep = $tabDep [ $dep ];
if ( $numDep == '' ) echo date ( 'Y/m/d - H:i:s' ) . " - Attention, d<> partement ' $dep ' non trouv<75> ! " . EOL ;
$region = trim ( substr ( $tabDepReg [ 1 ], 0 , strlen ( $tabDepReg [ 1 ]) - 1 ));
$tabAnn [ 'Departement' ] = $numDep ;
$tabAnn [ 'Sous_Prefecture' ] = htm2txt ( @ getTextInHtml ( $annonceHtml , '<p>Lieu parution : <b>D<> claration <20> la ' , ' <20> la ' , '</b>' ));
$tabAnn [ 'Type_Annonce' ] = htm2txt ( @ getTextInHtml ( $annonceHtml , 'Type d\'annonce : <b>' , '<b>' , '</b>' ));
/** Recherche du type d ' association
**/
if ( preg_match ( '/ASL/i' , $tabAnn [ 'Type_Annonce' ]) || preg_match ( '/syndicale/i' , $tabAnn [ 'Type_Annonce' ]))
$tabAnn [ 'typeAsso' ] = 'ASL' ;
elseif ( preg_match ( '/Fondation/i' , $tabAnn [ 'Type_Annonce' ]))
$tabAnn [ 'typeAsso' ] = 'FON' ;
elseif ( preg_match ( '/dotation/i' , $tabAnn [ 'Type_Annonce' ]))
$tabAnn [ 'typeAsso' ] = 'FOD' ;
else
$tabAnn [ 'typeAsso' ] = 'ASS' ;
/** Recherche du type d ' insertion
**/
if ( preg_match ( '/ANNULATION/i' , $tabAnn [ 'Type_Annonce' ]))
$tabAnn [ 'typeAnnonce' ] = 'Suppression' ;
elseif ( preg_match ( '/RECTIFICATIF/i' , $tabAnn [ 'Type_Annonce' ]))
$tabAnn [ 'typeAnnonce' ] = 'Rectificatif' ;
else
$tabAnn [ 'typeAnnonce' ] = 'Insertion' ;
$tabAnn [ 'Assoc_Duree' ] = trim ( htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'Dur<75> e :' , 'Dur<75> e :' , '.<br>' )));
$tabAnn [ 'Assoc_Dotation' ] = trim ( htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'Montant de la dotation initiale :' , 'initiale :' , '.<br>' )));
$tabAnn [ 'Assoc_ProgAction' ] = trim ( htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'action pluriannuel :' , 'pluriannuel :' , '.<br>' )));
$tabAnn [ 'Assoc_Fondateurs' ] = trim ( htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], ' de chacun des fondateurs :' , 'fondateurs :' , '.</p>' )));
//<p align="LEFT">Autorisation administrative.</p> <p align="LEFT">
//Date de signature de statuts : 21 d<> cembre 1992.<br>
//Date de la modification des statuts : 7 f<> vrier 1996, autorisation d<> livr<76> e par le pr<70> fet 16 mars 1996.</p> <p align="LEFT">Autorisation tacite.</p> <p align="LEFT">
//Date de la demande de modification des statuts : 7 f<> vrier 1996, sollicit<69> e aupr<70> s du pr<70> fet de Paris.</p>
$tabAnn [ 'Assoc_Web' ] =@ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'ite Internet : </i>' , '</i>' , '<i>' );
if ( substr ( $tabAnn [ 'Assoc_Web' ], - 1 ) == '.' )
$tabAnn [ 'Assoc_Web' ] = substr ( $tabAnn [ 'Assoc_Web' ], 0 , - 1 );
$tabAnn [ 'Assoc_Mail' ] = @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Courriel : </i>' , '</i>' , '<i>' );
if ( $tabAnn [ 'Assoc_Mail' ] == '' )
$tabAnn [ 'Assoc_Mail' ] = @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>M<> l. : </i>' , '</i>' , '<i>' );
if ( substr ( $tabAnn [ 'Assoc_Mail' ], - 1 ) == '.' )
$tabAnn [ 'Assoc_Mail' ] = substr ( $tabAnn [ 'Assoc_Mail' ], 0 , - 1 );
$tabAnn [ 'Assoc_Objet' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '>Objet : </i>' , '</i>' , '<i>' ));
if ( trim ( $tabAnn [ 'Assoc_Objet' ]) == '' )
$tabAnn [ 'Assoc_Objet' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'Objet : </i>' , '</i>' , '<br>' ));
$tabAnn [ 'Assoc_NObjet' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Nouvel objet : </i>' , '</i>' , '<i>' ));
$tabAnn [ 'Assoc_AObjet' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Additif <20> l’objet : </i>' , '</i>' , '<i>' ));
$tabAnn [ 'Assoc_NAdresse' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Transf<73> r<EFBFBD> ; nouvelle adresse : </i>' , '</i>' , '. <i>' ));
$tabAnn [ 'Assoc_Fusion' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Fusion des associations : </i>' , '</i>' , '<i>' ));
$tabAnn [ 'Assoc_Adresse' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Si<53> ge social : </i>' , '</i>' , '. <i>' ));
// Fondations
if ( trim ( $tabAnn [ 'Assoc_Adresse' ]) == '' )
$tabAnn [ 'Assoc_Adresse' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'Si<53> ge : </i>' , '</i>' , '.<br>' ));
if ( trim ( $tabAnn [ 'Assoc_Adresse' ]) == '' )
$tabAnn [ 'Assoc_Adresse' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'Si<53> ge : </i>' , '</i>' , '.</p>' ));
$tabAnn [ 'Assoc_Date_Declaration' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '>Date de la d<> claration : </i>' , '</i>' , '.' ));
if ( $tabAnn [ 'Assoc_Date_Declaration' ] == '' )
$tabAnn [ 'Assoc_Date_Declaration' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '>Date de d<> livrance du r<> c<EFBFBD> piss<73> : </i>' , '</i>' , '.' ));
// Fondations
if ( trim ( $tabAnn [ 'Assoc_Date_Declaration' ]) == '' ) {
$tabAnn [ 'Assoc_Date_Declaration' ] = trim ( htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'autorisation administrative :' , 'administrative :' , ',' )));
if ( trim ( $tabAnn [ 'Assoc_Date_Declaration' ]) == '' )
$tabAnn [ 'Assoc_Date_Declaration' ] = trim ( htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'Date de la modification des statuts :' , 'statuts :' , ',' )));
if ( trim ( $tabAnn [ 'Sous_Prefecture' ]) == '' )
$tabAnn [ 'Sous_Prefecture' ] = htm2txt ( @ getTextInHtml ( $annonceHtml , 'sollicit<69> e aupr<70> s du' , 'du' , '<br>' ));
if ( trim ( $tabAnn [ 'Sous_Prefecture' ]) == '' )
$tabAnn [ 'Sous_Prefecture' ] = htm2txt ( @ getTextInHtml ( $annonceHtml , 'sollicit<69> e aupr<70> s du' , 'du' , '</p>' ));
}
$tabAnn [ 'Assoc_Date_Declaration2' ] = WDate :: dateT ( 'd M Y' , 'Y-m-d' , $tabAnn [ 'Assoc_Date_Declaration' ]);
$tabAnn [ 'Assoc_ANom' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Ancien titre : </i>' , '</i>' , '<i>' ));
$tabAnn [ 'Assoc_Annulation' ] = 'Annulation ' . htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '>Annulation' , '</i>' , '.' ));
/*<i>Annulation </i>de l’insertion n<sup>o</sup> 1014, parue au <i>Journal officiel </i>n<sup>o</sup> 25, du 24 juin 2006, page 3106.*/
if ( $tabAnn [ 'Assoc_Annulation' ] == 'Annulation ' ) $tabAnn [ 'Assoc_Annulation' ] = '' ;
if ( $tabAnn [ 'Assoc_ANom' ] == '' )
$tabAnn [ 'Assoc_ANom' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], 'Au lieu de : </i>' , '</i>' , '<i>' ));
if ( substr ( $tabAnn [ 'Assoc_ANom' ], - 1 ) == '.' )
$tabAnn [ 'Assoc_ANom' ] = substr ( $tabAnn [ 'Assoc_ANom' ], 0 , - 1 );
$tabAnn [ 'Assoc_NNom' ] = htm2txt ( @ getTextInHtml ( $tabAnn [ 'Annonce_Html' ], '<i>Nouveau titre :' , '</i>' , '<i>' ));
if ( substr ( $tabAnn [ 'Assoc_NNom' ], - 1 ) == '.' )
$tabAnn [ 'Assoc_NNom' ] = substr ( $tabAnn [ 'Assoc_NNom' ], 0 , - 1 );
}
return $tabAnn ;
}
$tempsMinEntreRequetes = 5 ;
$tempsMaxEntreRequetes = 30 ;
set_time_limit ( 0 );
$lastJO = $dateDebut = $dateFin = $dateF = $dateCour = $verif = false ;
$strInfoProg = 'Usage : ' . basename ( $argv [ 0 ]) . " [OPTION]
Recup<EFBFBD> re les annonces Association sur le site du JO Association .
Sans aucun param<EFBFBD> tre , r<EFBFBD> cup<EFBFBD> ration du dernier JO Association .
Sinon :
- d : JJ / MM / AAAA Date de d<EFBFBD> but de publication
- f : JJ / MM / AAAA Date de fin de publication
- l Dernier JO Association uniquement ( * )
- c D<EFBFBD> p<EFBFBD> ts des comptes uniquement
- n : X Intervalle MIN en secondes entre les requ<EFBFBD> tes sur le site des JO ( d<EFBFBD> faut = $tempsMinEntreRequetes )
- i : X \ " MAX \" \" \" \" \" \" \" \" \" \" (d<> faut= $tempsMaxEntreRequetes )
- v V<EFBFBD> rifier que toutes les annonces du JO sont en base !
" ;
$depotComptes = false ;
$argv = $_SERVER [ 'argv' ];
if ( $_SERVER [ 'argc' ] == 1 ) $lastJO = true ;
else {
for ( $i = 1 ; isset ( $argv [ $i ]); $i ++ ) {
if ( substr ( $argv [ $i ], 0 , 1 ) == '-' ) {
switch ( substr ( $argv [ $i ], 1 , 1 )) {
case 'd' :
$dateDebut = substr ( $argv [ $i ], 3 , 10 );
$dateDeb = WDate :: dateT ( 'd/m/Y' , 'Ymd' , $dateDebut );
break ;
case 'f' :
$dateFin = substr ( $argv [ $i ], 3 , 10 );
$dateF = WDate :: dateT ( 'd/m/Y' , 'Ymd' , $dateFin );
break ;
case 'n' :
$tempsMinEntreRequetes = trim ( substr ( $argv [ $i ], 3 )) * 1 ;
if ( $tempsMinEntreRequetes < 0 ) $tempsMinEntreRequetes = 0 ;
break ;
case 'i' :
$tempsMaxEntreRequetes = trim ( substr ( $argv [ $i ], 3 )) * 1 ;
if ( $tempsMaxEntreRequetes < 5 ) $tempsMaxEntreRequetes = 2 ;
break ;
case 'l' :
$lastJO = true ;
break ;
case 'v' :
$verif = true ;
break ;
case 'c' :
$depotComptes = true ;
break ;
case '-' :
die ( $strInfoProg );
break ;
default : die ( 'Option ' . $argv [ $i ] . " inconnue ! \n " );
}
}
}
}
if ( $depotComptes )
$tabReg = array ( 'ASSOCIATION%2FCOMPTE' ,
'FONDATION%2FCOMPTE' ,
'FONDS+DE+DOTATION%2FCOMPTE' ,
'AUTRE%2FCOMPTE' ,
);
else
$tabReg = array ( 'ASSOCIATION%2FCREATION' ,
'ASSOCIATION%2FMODIFICATION' ,
'ASSOCIATION%2FDISSOLUTION' ,
'ASL' ,
'FONDATION' ,
'DECISION+JUSTICE' ,
'AUTRE' ,
'FONDS+DE+DOTATION' ,
);
$iDb = new WDB ();
$iInsee = new MInsee ();
$referer = 'http://www.journal-officiel.gouv.fr/association/' ;
if ( $verif ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Comptage du nombre d'annonce pr<70> sentes en base par date de parution... " . EOL ;
$AnnDb = $iDb -> select ( 'asso' , 'Date_Parution, count(*) as nb' , '1 GROUP BY Date_Parution' );
foreach ( $AnnDb as $i => $tabDates ) {
if ( $tabDates [ 0 ] <> '0000-00-00' ) {
$parDate = $tabDates [ 0 ];
$parNb = $tabDates [ 1 ];
$dateFmt = str_replace ( '/' , '%2F' , WDate :: dateT ( 'Y-m-d' , 'd/m/Y' , $parDate ));
$url = " http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D= $dateFmt &JPA_D_F= " . $dateFmt . '&rechercher.x=' . rand ( 1 , 68 ) . '&rechercher.y=' . rand ( 1 , 16 ) . '&rechercher=Rechercher' ;
$page = getUrl ( $url , '' , '' , $referer , false , 'www.journal-officiel.gouv.fr' );
$body = $page [ 'body' ];
$ctx =@ getTextInHtml ( $body , '<A href="index.php?ctx=' , 'ctx=' , '&' ); // Cl<43> de contexte entre chaque page
$nbAnnonces =@ getTextInHtml ( $body , '<p>Résultat de la recherche : <strong>' , '<strong>' , 'annonce(s)</strong>' );
if ( $nbAnnonces <> $parNb && $nbAnnonces <> 0 )
echo date ( 'Y/m/d - H:i:s' ) . " - Parution du $parDate : $parNb annonces en base / $nbAnnonces annonces parues ! " . EOL ;
elseif ( $nbAnnonces == 0 )
echo date ( 'Y/m/d - H:i:s' ) . " - Parution du $parDate : $parNb annonces en base / Plus d'annonces sur le site JO. " . EOL ;
//die(print_r($body));
randsleep ( $tempsMinEntreRequetes , $tempsMaxEntreRequetes );
//die();
}
}
die ();
}
if ( $lastJO == true ) {
$strLast = ' dernier' ;
$strDates = '' ;
}
else {
$strLast = '' ;
if ( $depotComptes ) {
if ( $dateDebut == false ) {
$dateDeb = getNextDate ( date ( 'Ymd' ), - 5 );
$dateDebut = WDate :: dateT ( 'Ymd' , 'd/m/Y' , $dateDeb );
}
if ( $dateFin == false ) {
$dateF = getNextDate ( date ( 'Ymd' ), 0 );
$dateFin = WDate :: dateT ( 'Ymd' , 'd/m/Y' , $dateF );
}
$dateCour = $dateDeb ;
}
if ( $dateFin == false ) {
$dateFin = date ( 'd/m/Y' );
$dateF = WDate :: dateT ( 'd/m/Y' , 'Ymd' , $dateFin );
}
if ( $dateDebut == false )
die ( $strInfoProg );
else
$strDates = " du $dateDebut au $dateFin " ;
$dateCour = $dateDeb ;
}
echo date ( 'Y/m/d - H:i:s' ) . " - DEBUT du la r<> cup<75> ration du $strLast JO Association $strDates " . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . ' - La dur<75> e maximum entre chaque requ<71> te est de ' . $tempsMaxEntreRequetes . ' secondes.' . EOL ;
flush ();
2012-07-05 17:52:34 +02:00
$message = '' ;
2012-07-05 16:32:35 +02:00
while ( $dateCour <= $dateF || $lastJO ) { // Boucle sur les dates
//echo date ('Y/m/d - H:i:s') ." - dateCour($dateCour) <= dateF($dateF) OU lastJO($lastJO)=true". $eol;
for ( $i_reg = 0 ; isset ( $tabReg [ $i_reg ]) || $lastJO ; $i_reg ++ ) { // Boucle sur les r<> gions
if ( $lastJO == true ) { // Cas r<> cup dernier JO
$region = '' ;
$url = 'http://www.journal-officiel.gouv.fr/association/index.php?ACTION=showLast' ;
} else { // On est pas dans la r<> cup<75> ration du JO Assoc Jiur
$region = $tabReg [ $i_reg ];
$reg5 = substr ( $region , 0 , 5 );
$dateFmt = str_replace ( '/' , '%2F' , WDate :: dateT ( 'Ymd' , 'd/m/Y' , $dateCour ));
if ( $depotComptes )
$dateFmt2 = str_replace ( '/' , '%2F' , WDate :: dateT ( 'Ymd' , 'd/m/Y' , getNextDate ( $dateCour , 0 )));
else
$dateFmt2 = str_replace ( '/' , '%2F' , WDate :: dateT ( 'Ymd' , 'd/m/Y' , getNextDate ( $dateCour )));
//$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID='.urlencode($tabReg[$i_reg]).'&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2;//&rechercher.x=44&rechercher.y=6&rechercher=Rechercher
$url = 'http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=' . $region . '&JTY_WALDEC=&JTY_SIREN=&JPA_D_D=' . $dateFmt . '&JPA_D_F=' . $dateFmt2 . '&rechercher.x=' . rand ( 1 , 68 ) . '&rechercher.y=' . rand ( 1 , 16 ) . '&rechercher=Rechercher' ;
// http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=ASSOCIATION%2FCOMPT&JTY_WALDEC=&JTY_SIREN=&JPA_D_D=01%2F01%2F1990&JPA_D_F=31%2F12%2F2009&rechercher.x=40&rechercher.y=9&rechercher=Rechercher
$strLast = '' ;
}
$page = getUrl ( $url , '' , '' , $referer , false , 'www.journal-officiel.gouv.fr' );
$body = $page [ 'body' ];
//die(print_r($body));
$ctx =@ getTextInHtml ( $body , '<A href="index.php?ctx=' , 'ctx=' , '&' ); // Cl<43> de contexte entre chaque page
$nbAnnonces =@ getTextInHtml ( $body , 'Résultat de la recherche :' , ' :' , 'annonce(s)' );
$dateDerParution =@ getTextInHtml ( $body , 'Annonce parue entre le :' , ' et le ' , '<br>' ); // Date au format JJ/MM/AAAA
// 01/08/2010 et le 01/08/2010<br>
$nbPages = ceil ( $nbAnnonces / 25 );
if ( $nbPages > 100 ) {
echo date ( 'Y/m/d - H:i:s' ) . ' - ERREUR : Il y a plus de 100 pages d\'annonces !' . EOL ;
die ();
}
echo date ( 'Y/m/d - H:i:s' ) . " - Cl<43> de contexte = $ctx " . EOL ;
unset ( $AnnDb );
$nbAnnDb = 0 ;
if ( $lastJO == true ) {
echo date ( 'Y/m/d - H:i:s' ) . ' - Derniere parution ASSO le ' . $dateDerParution . ' de ' . $nbAnnonces . ' annonces (' . $nbPages . ' pages)' . EOL ;
// On recherche si nous n'avons pas d<> j<EFBFBD> toutes ces annonces en base !
$dateDb = substr ( $dateDerParution , 6 , 4 ) . '-' . substr ( $dateDerParution , 3 , 2 ) . '-' . substr ( $dateDerParution , 0 , 2 );
$AnnDb = $iDb -> select ( 'asso' , 'count(*) AS nb' , " Date_Parution=' $dateDb ' " , false , MYSQL_ASSOC );
$nbAnnDb = $AnnDb [ 0 ][ 'nb' ];
if ( $nbAnnDb == $nbAnnonces ) {
echo date ( 'Y/m/d - H:i:s' ) . ' - Toutes les annonces du ' . $dateDerParution . ' sont en base !' . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . ' - FIN du script' . EOL ;
die ();
}
elseif ( $nbAnnDb > 0 && $nbAnnDb < $nbAnnonces ) {
$message = date ( 'Y/m/d - H:i:s' ) . ' - ATTENTION : Il n\'y a que ' . $nbAnnDb . ' annonces en base sur les ' . $nbAnnonces . ' annonces pr<70> sentes au JO Association du ' . $dateDerParution . ' !' . EOL ;
echo $message ;
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , 'JO Association' , $message );
echo date ( 'Y/m/d - H:i:s' ) . ' - Tentative de r<> cup<75> ration des annonces...' . EOL ;
}
} else {
// On recherche si nous n'avons pas d<> j<EFBFBD> toutes ces annonces en base !
$dateDb = substr ( $dateCour , 0 , 4 ) . '-' . substr ( $dateCour , 4 , 2 ) . '-' . substr ( $dateCour , 6 , 2 );
$dateDerParution = WDate :: dateT ( 'Y-m-d' , 'd/m/Y' , $dateDb );
if ( $depotComptes ) {
switch ( $region ) {
case 'ASSOCIATION%2FCOMPTE' : $strRegSql = " AND typeAsso='ASS' " ; break ;
case 'FONDATION%2FCOMPTE' : $strRegSql = " AND typeAsso='FON' " ; break ;
case 'FONDS+DE+DOTATION%2FCOMPTE' : $strRegSql = " AND typeAsso='FOD' " ; break ;
case 'AUTRE%2FCOMPTE' : $strRegSql = " AND typeAsso='DIV' " ; break ;
}
$AnnDb = $iDb -> select ( 'asso_bilans' , 'count(*) AS nb' , " Assoc_Date_Declaration=' $dateDb ' $strRegSql " , false , MYSQL_ASSOC );
$strJO = 'dep<65> ts des comptes associations' ;
} else {
$AnnDb = $iDb -> select ( 'asso' , 'count(*) AS nb' , " Date_Parution=' $dateDb ' " , false , MYSQL_ASSOC );
$strJO = 'associations' ;
}
$nbAnnDb = $AnnDb [ 0 ][ 'nb' ];
if ( $nbAnnDb >= $nbAnnonces ) {
echo mysql_error () . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . " - Les $nbAnnonces annonces $strJO $reg5 du $dateDerParution ( $dateDb ) sont en base ( $nbAnnDb ) ! " . EOL ;
randsleep ( $tempsMinEntreRequetes , $tempsMaxEntreRequetes );
continue ;
}
elseif ( $nbAnnDb > 0 && $nbAnnDb < $nbAnnonces ) {
$message .= date ( 'Y/m/d - H:i:s' ) . " - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces pr<70> sentes au JO du $dateDerParution ! " . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . " - ATTENTION : Il n'y a que $nbAnnDb annonce(s) $strJO en base sur les $nbAnnonces annonces pr<70> sentes au JO du $dateDerParution ! " . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . ' - Tentative de r<> cup<75> ration des annonces...' . EOL ;
}
else {
$message .= date ( 'Y/m/d - H:i:s' ) . " - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces pr<70> sentes au JO du $dateDerParution ! " . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . " - Il y a $nbAnnDb annonce(s) $strJO $reg5 en base sur les $nbAnnonces annonces pr<70> sentes au JO du $dateDerParution ! " . EOL ;
}
}
$tabAnnonces = explode ( '<div class="hr"><hr/></div>' , $page [ 'body' ]);
for ( $j = 1 ; $j < 26 && isset ( $tabAnnonces [ $j ]); $j ++ )
$tabAnn [ $j - 1 ] = $tabAnnonces [ $j ];
randsleep ( $tempsMinEntreRequetes , $tempsMaxEntreRequetes );
$referer = $url ;
for ( $i = 2 ; $i <= $nbPages ; $i ++ )
{
if ( ! $lastJO ) {
$data = '' ;
$date1 = str_replace ( '/' , '%2F' , WDate :: dateT ( 'Ymd' , 'd/m/Y' , $dateCour ));
if ( $depotComptes )
$date2 = str_replace ( '/' , '%2F' , WDate :: dateT ( 'Ymd' , 'd/m/Y' , getNextDate ( $dateCour , 0 )));
else
$date2 = str_replace ( '/' , '%2F' , WDate :: dateT ( 'Ymd' , 'd/m/Y' , getNextDate ( $dateCour )));
$url = 'http://www.journal-officiel.gouv.fr/association/index.php?ctx=' . $ctx . '&page=' . $i . '&JRE_ID=' . urlencode ( $region ) . '&JPA_D_D=' . $date1 . '&JPA_D_F=' . $date2 ;
} else {
$date1 = '' ; $date2 = '' ; $data = '1' ;
$url = 'http://www.journal-officiel.gouv.fr/association/index.php?ctx=' . $ctx . '&page=' . $i ;
}
$page = getUrl ( $url , '' , '' , $referer , false , 'www.journal-officiel.gouv.fr' );
$tabAnnonces = explode ( '<div class="hr"><hr/></div>' , $page [ 'body' ]);
for ( $j = 1 ; $j < 26 ; $j ++ ) {
$k = $j + ( 25 * ( $i - 1 )) - 1 ;
if ( $k < $nbAnnonces )
$tabAnn [ $k ] = $tabAnnonces [ $j ];
}
flush ();
if ( $i == 2 )
echo date ( 'Y/m/d - H:i:s' ) . " - Page $i / $nbPages " ;
else
echo " , $i / $nbPages " ;
if ( $i == $nbPages )
echo '.' . EOL ;
else
randsleep ( $tempsMinEntreRequetes , $tempsMaxEntreRequetes );
}
$tabActivites = array ();
for ( $i = 0 ; $i < $nbAnnonces ; $i ++ ) {
$infoAnnBalo = getInfosAnnonceAsso ( $tabAnn [ $i ], $depotComptes );
$tabInfos = array ();
preg_match_all ( " |<i>(.*)</i>|U " , $infoAnnBalo [ 'Annonce_Html' ], $tabInfos );
$tabInfosGlobal = array_unique ( array_merge ( $tabInfosGlobal , $tabInfos [ 1 ]));
// On recherche si nous n'avons pas d<> j<EFBFBD> cette annonce en base !
if ( $depotComptes ) {
$AnnDb = $iDb -> select ( 'asso_bilans' , 'count(*) AS nb' , " Siren= " . $infoAnnBalo [ 'Siren' ] . " AND Waldec=' " . $infoAnnBalo [ 'Waldec' ] . " ' AND dateCloture=' " . $infoAnnBalo [ 'dateCloture' ] . " ' " , false , MYSQL_ASSOC );
// $AnnDb[0][0]=0;
} else {
$AnnDb = $iDb -> select ( 'asso' , 'count(*) AS nb' , " Num_Annonce=' " . $infoAnnBalo [ 'Num_Annonce' ] . " ' AND Date_Parution=' " . $infoAnnBalo [ 'Date_Parution' ] . " ' AND Num_Parution=' " . $infoAnnBalo [ 'Num_Parution' ] . " ' " , false , MYSQL_ASSOC );
$dateAff = $infoAnnBalo [ 'Date_Parution' ];
}
$nbAnnDb = $AnnDb [ 0 ][ 'nb' ];
$i2 = $i + 1 ;
$strRegion = ', ' . $region ;
if ( $depotComptes ) {
$table = 'asso_bilans' ;
// Si le bilan PDF n'est pas d<> j<EFBFBD> sur le disk, on va le chercher !
switch ( $region ) {
case 'ASSOCIATION%2FCOMPTE' : $infoAnnBalo [ 'typeAsso' ] = 'ASS' ; break ;
case 'FONDATION%2FCOMPTE' : $infoAnnBalo [ 'typeAsso' ] = 'FON' ; break ;
case 'FONDS+DE+DOTATION%2FCOMPTE' : $infoAnnBalo [ 'typeAsso' ] = 'FOD' ; break ;
case 'AUTRE%2FCOMPTE' :
default : $infoAnnBalo [ 'typeAsso' ] = 'DIV' ; break ;
}
$dateAff = $dateCour . ' (' . $infoAnnBalo [ 'dateCloture' ] . ')' ;
$infoAnnBalo [ 'Assoc_Date_Declaration' ] = $dateCour ;
$tabPdf = getPdfInfo ( $repPdfAssoCpt . '/' . basename ( $infoAnnBalo [ 'pdfLink' ]));
if ( ! $tabPdf ) {
$page = getUrl ( 'http://www.journal-officiel.gouv.fr/' . $infoAnnBalo [ 'pdfLink' ], '' , '' , '' , false );
@ mkdir ( $repPdfAssoCpt );
$fp =@ fopen ( $repPdfAssoCpt . '/' . basename ( $infoAnnBalo [ 'pdfLink' ]), 'w' );
if ( ! fwrite ( $fp , $page [ 'body' ]) || ! $fp ) {
$message .= date ( 'Y/m/d - H:i:s' ) . ' - ERREUR : Probl<62> me de cr<63> ation du PDF ' . basename ( $infoAnnBalo [ 'pdfLink' ]) . " pour la parution du $dateAff $strRegion , Annonce $i2 / $nbAnnonces , Association \" " . $infoAnnBalo [ 'Assoc_Nom' ] . '" !' . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . ' - ERREUR : Probl<62> me de cr<63> ation du PDF ' . basename ( $infoAnnBalo [ 'pdfLink' ]) . " pour la parution du $dateAff $strRegion , Annonce $i2 / $nbAnnonces , Association \" " . $infoAnnBalo [ 'Assoc_Nom' ] . '" !' . EOL ;
}
@ fclose ( $fp );
$tabPdf = getPdfInfo ( $repPdfAssoCpt . '/' . basename ( $infoAnnBalo [ 'pdfLink' ]));
randsleep ( $tempsMinEntreRequetes , $tempsMaxEntreRequetes );
}
$infoAnnBalo [ 'pdfSize' ] = $tabPdf [ 'pdfSize' ];
$infoAnnBalo [ 'pdfVer' ] = $tabPdf [ 'version' ];
$infoAnnBalo [ 'pdfPage' ] = $tabPdf [ 'nbPages' ];
} else {
$table = 'asso' ;
$tabTmp = explode ( '/' , $infoAnnBalo [ 'Activite' ]);
$tabActivites = array_merge ( $tabActivites , $tabTmp );
}
if ( $nbAnnDb == 1 ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Parution du $dateAff $strRegion , Annonce $i2 / $nbAnnonces , Association \" " . $infoAnnBalo [ 'Assoc_Nom' ] . '" d<> j<EFBFBD> en base !' . EOL ;
// L'annonce est d<> j<EFBFBD> en base !
continue ;
} else {
$message .= date ( 'Y/m/d - H:i:s' ) . " - Parution du $dateAff $strRegion , Annonce $i2 / $nbAnnonces , Association \" " . $infoAnnBalo [ 'Assoc_Nom' ] . '"... enregistrement' . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . " - Parution du $dateAff $strRegion , Annonce $i2 / $nbAnnonces , Association \" " . $infoAnnBalo [ 'Assoc_Nom' ] . '"... enregistrement' . EOL ;
}
if ( ! $iDb -> insert ( $table , $infoAnnBalo ))
echo date ( 'Y/m/d - H:i:s' ) . ' - ERREUR : MySql n<> ' . mysql_errno () . ') : ' . mysql_error () . EOL ;
}
if ( $lastJO ) {
print_r ( $tabInfosGlobal );
echo date ( 'Y/m/d - H:i:s' ) . ' - FIN du script' . EOL ;
die ();
}
unset ( $tabAnn );
} // Fin boucle r<> gion
if ( $depotComptes )
$dateCour = getNextDate ( $dateCour , 1 );
else
$dateCour = getNextDate ( $dateCour );
} // Fin boucle Data
if ( $depotComptes ) {
//
$AnnDb = $iDb -> select ( 'annonces' , 'MAX(dateSource) AS dateMAJ' , " typeEven=3200 " , false , MYSQL_ASSOC );
$dateMaj = $AnnDb [ 0 ][ 'dateMAJ' ];
// echo date('Y/m/d - H:i:s') ." - Derni<6E> re mise <20> jour des annonces d<> pots en collecte en date du $dateMaj.".EOL;
$AnnDb = $iDb -> select ( 'asso_bilans' ,
" Assoc_Nom AS raisonSociale, siren, sirenValide, dateCloture AS dateEffetFinP, Assoc_Date_Declaration AS dateJugement, dateInsert AS dateSource,
'3200' AS typeEven , 'DJOFFJ' AS tribunal , 'JS' AS source , Waldec " ,
" dateInsert>' $dateMaj ' ORDER BY dateEffetFinP DESC " , false , MYSQL_ASSOC );
$nbAnnonces = count ( $AnnDb );
$message .= date ( 'Y/m/d - H:i:s' ) . " - Il y a $nbAnnonces annonces d<> pots <20> mettre en collecte en date du $dateMaj . " . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . " - Il y a $nbAnnonces annonces d<> pots <20> mettre en collecte en date du $dateMaj . " . EOL ;
foreach ( $AnnDb as $i => $tabInsert ) {
$tabTmp = $iInsee -> getIdentiteLight ( $tabInsert [ 'siren' ]);
$tabInsert [ 'adresse' ] = $tabTmp [ 'Adresse' ];
$tabInsert [ 'codePostal' ] = $tabTmp [ 'CP' ];
$tabInsert [ 'ville' ] = $tabTmp [ 'Ville' ];
$tabInsert [ 'dateInsert' ] = date ( 'YmdHis' );
if ( trim ( $tabInsert [ 'Waldec' ]) <> '' )
$tabInsert [ 'complement' ] = 'Identifiant Waldec : ' . $tabInsert [ 'Waldec' ];
unset ( $tabInsert [ 'Waldec' ]);
//print_r($tabInsert);
//die();
if ( ! $iDb -> insert ( 'annonces' , $tabInsert ))
echo '' ; //date ('Y/m/d - H:i:s') .' - ERREUR : MySql n<> '. mysql_errno() .') : '. mysql_error() . EOL;
}
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , 'JO Association Comptes' , $message );
}
echo date ( 'Y/m/d - H:i:s' ) . ' - FIN du script.' . EOL ;