#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini Mise à jour des tribunaux compétents pour les codes insee des communes depuis le site du ministère de la justice. /**@todo : Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!**/ Options : -d Mode debug (Verbosité au maximum et fonctionnement sans timer ni contraintes temporelles) ";/* -i:XXXXX Reprendre au code commune Insee XXXXX ";*/ $argv=$_SERVER['argv']; for ($i=1,$j=0; isset($argv[$i]); $i++) { if (substr($argv[$i],0,1)=='-') { switch (substr($argv[$i],1,1)) { case 'd': $modeDebug=true; break; case '-': case '?': die($strInfoScript); break; default: die('Option '. $argv[$i] . " inconnue !\n"); } } } /** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all ** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php ** ** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007 **/ $iDb=new WDB('sdv1'); $table='qualifelec'; $urlBase='http://www.qualifelec.fr/recherche/fiche.php?idadh='; $tabZones=array('codeQE'=>' Code QE n°(?:.*) (\d+)', //'urlImg'=>'', //http://www.qualifelec.fr/recherche/fiche.php?idadh=9011&PHPSESSID=7cqetmc0e54f3th3lhhr4e3e86buikbe // Traiter logo et catégorie + activité déclaré 'raiSoc'=>' Raison Sociale(?:.*) (.*)', 'adresse'=>' Adresse(?:.*)(?:.*) (.*)', 'chef'=>' Chef(?:.*)entreprise(?:.*)(?:.*) (.*)', 'cp'=>' Code(?:.*)Postal(?:.*) (\d\d\d\d\d)', 'ville'=>' Ville(?:.*) (\D+)', 'tel'=>' Téléphone(?:.*) (\d\d\d\d\d\d\d\d\d\d)', 'fax'=>' Fax(?:.*) (?:\d\d\d\d\d\d\d\d\d\d)(?:.*) (\d\d\d\d\d\d\d\d\d\d)', 'mail'=>' E-mail(?:.*) ', 'web'=>' Site(?:.*)Internet(?:.*) ', 'fj'=>' Forme(?:.*)juridique(?:.*) (.*)', 'siret'=>' SIREN(?:.*) (\d+)', 'naf'=>' Code(?:.*)NAF(?:.*) (.*)', 'qualifs[qualifUrl,qualifCode,qualifLib]'=>'(?:.*) (.*)(?:.*) (.*)(?:.*)', ); echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises '$table'...".EOL; $ret=$iDb->select('qualifelec', 'MAX(id)', '1', false); $iDeb=$ret[0][0]; $nbVides=0; echo date ('Y/m/d - H:i:s')." - Dernier id entreprise '$table' = $iDeb".EOL; for($i=$iDeb;;$i++) { //http://www.qualifelec.fr/recherche/fiche.php?idadh=8148&PHPSESSID=i1jgdorhdighojasq5otfpc1v67drkqi $tabInsert=array('id'=>$i); $ret=$iDb->select($table, 'raiSoc', "id=$i", false); if (@$ret[0][0]<>'') continue; $url=$urlBase.$i; $page=getUrl($url, '', '', '', false); $referer=$url; $body=$page['body']; $tabHtml=html2array($body, $tabZones); foreach ($tabHtml as $zone=>$data) { if (is_array($data)) { foreach ($data as $j=>$tabInsert2) { $tabInsert2['id']=$i; $tabInsert2['num']=$j; $tabInsert2['dateInsert']=date('YmdHis'); if (!$iDb->insert($table.$zone, $tabInsert2, false)) { if (mysql_errno()==1062) { unset($tabInsert2['dateInsert']); $iDb->update($table.$zone, $tabInsert2, "id=$i AND num=$j", false); } else { print_r($tabInsert2); die(mysql_error()); } } } } else $tabInsert[$zone]=$data; } if (count($tabInsert)<10 || $tabInsert['raiSoc']=='') { $nbVides++; if ($nbVides<20) continue; else { echo date('Y/m/d - H:i:s')." - $i : Il semble que le dernier numéro '$table' attribué soit le ".($i-$nbVides).EOL; die(); } } $nbVides=0; unset($tabInsert['qualifs']); if (isset($tabInsert['urlImg']) && $tabInsert['urlImg']<>'') { $urlLogo='http://www.qualifelec.fr/'; die($tabInsert['urlImg']); if (substr($urlLogo,0,32)=='http://www.annuaire.com/uploads/') { $extension=substr(strrchr($urlLogo,'.'),1); if (!file_exists("/home/data/logos/$siren.$extension")) { $referer=''; $tDeb=microtime(true); $page=getUrl($urlLogo, '', '', $referer, false, '', '', 60); $duree=round(microtime(true)-$tDeb,3); $body=$page['body']; $taille=round(strlen($body)/1024,1); file_put_contents("/home/data/logos/$siren.$extension",$body); } } } unset($tabInsert['urlImg']); $tabInsert['dateInsert']=date('YmdHis'); if (!$iDb->insert($table, $tabInsert, false)) { if (mysql_errno()==1062) { unset($tabInsert['dateInsert']); $iDb->update($table, $tabInsert, "id=$i", false); } else { print_r($tabInsert); die(mysql_error()); } } //die(); $nb=count($tabInsert); $nb2=@count($tabInsert2); echo date('Y/m/d H:i:s')." - $i : $nb zones et $nb2 qualifications".EOL; if ($modeDebug) randsleep(1,2); else randsleep(7,21); } die(); ?>