173 lines
5.8 KiB
PHP
173 lines
5.8 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
|
|
include_once(FWK_PATH.'common/curl.php');
|
|
include_once(FWK_PATH.'common/chiffres.php');
|
|
include_once(FWK_PATH.'common/dates.php');
|
|
$modeDebug=false;
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
|
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='ecoartisan';
|
|
$urlBase='http://www.eco-artisan.net/renovation/je-trouve-un-eco-artisan-r.html?no_cache=1&ecoartisan=';
|
|
$tabZones=array(
|
|
'fj'=>'<dt>Forme juridique :</dt><dd>(.*)</dd>', //
|
|
'raiSoc'=>'<dt>Raison sociale :</dt><dd>(.*)</dd>', //
|
|
'siret'=>'<dt>SIRET : </dt><dd>(.*)</dd>', //
|
|
'chef'=>'<dt>Nom du chef d\'entreprise :</dt><dd>(.*)</dd>', //
|
|
'chefCiv'=>'<dt>Civilit(?:.*) du chef d\'entreprise :</dt><dd>(.*)</dd>',
|
|
'adresse'=>'<dt>Adresse :</dt><dd>(.*)</dd>', //
|
|
'adresse2'=>'<dt>Compl(?:.*)ment d\'adresse :</dt><dd>(.*)</dd>',
|
|
'cp'=>'<dt>Code postal :</dt><dd>(.*)</dd>', //
|
|
'ville'=>'<dt>Ville :</dt><dd>(.*)</dd>', //
|
|
'tel'=>'<dt>T(?:..?)l :</dt><dd>(.*)</dd>', //
|
|
'fax'=>'<dt>Fax :</dt><dd>(.*)</dd>', //
|
|
'mail'=>'<dt>E-mail :</dt><dd>(.*)<', //
|
|
'web'=>'<dt>Site internet :</dt><dd>(.*)<', //
|
|
'mob'=>'<dt>Mobile :</dt><dd>(.*)</dd>',
|
|
'zoneInter'=>'<dt>Zone d\'intervention :</dt><dd>(.*)</dd>',
|
|
'activitePri'=>'<dt>Activit(?:.*)principale :</dt><dd>(.*)</dd>', //
|
|
'activite[actCode,actLib]'=>'\t\t\t\t\t\t\t<dt>(.*) :</dt><dd>(.*)</dd>',
|
|
);
|
|
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des entreprises $table...".EOL;
|
|
|
|
$body=utf8_decode(file_get_contents('/root/Jaune2012_asso2012_tome3.xml'));
|
|
|
|
if (preg_match_all('/<page number="(\d+)"(?:.*)>(.*)<\/page>/Uis', $body, $matches)) {
|
|
//print_r($matches[1]);
|
|
foreach ($matches[1] as $i=>$numPage) {
|
|
if ($numPage<5) continue;
|
|
echo "Page $numPage:".EOL;//.$matches[2][$i].EOL;
|
|
//if (preg_match_all('/<text (?:.*) height="6" font="11">(.*)<i>\(n° (\d+)\)<\/i>(.*) \? Programme (\d+) \: (.*)<\/text>/Uis', $matches[2][$i], $matches2)) {
|
|
if (preg_match_all('/<text (?:.*) height="6" font="11">(.*)<i>\(n° (\d+)\)<\/i>(.*)(?:<text (?:.*) height="6" font="11">)/Uis', $matches[2][$i], $matches2)) {
|
|
print_r($matches2);
|
|
}
|
|
}
|
|
}
|
|
|
|
die();
|
|
|
|
$ret=$iDb->select($table, 'MAX(id)', '1', false);
|
|
$iDeb=$ret[0][0];
|
|
$nbVides=0;
|
|
|
|
for($i=$iDeb;;$i++) {
|
|
$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'];
|
|
//die($body);
|
|
|
|
$tabHtml=html2array($body, $tabZones);
|
|
// print_r($tabHtml);
|
|
// die();
|
|
foreach ($tabHtml as $zone=>$data) {
|
|
if (is_array($data)) {
|
|
foreach ($data as $j=>$tabInsert2) {
|
|
// Deb spécifique ecoartisan
|
|
$tmp=explode(' ',$tabInsert2['actCode']);
|
|
$last=end($tmp);
|
|
if ($last*1==0) continue;
|
|
// Fin spécifique ecoartisan
|
|
$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']=='' || substr($tabInsert['raiSoc'],0,3)=='###') {
|
|
$nbVides++;
|
|
if ($nbVides<50) continue;
|
|
else {
|
|
echo date('Y/m/d H:i:s')." - $i : Il semble que le dernier numéro attribué soit le ".($i-$nbVides).EOL;
|
|
die();
|
|
}
|
|
}
|
|
$nbVides=0;
|
|
|
|
unset($tabInsert['activite']);
|
|
/*
|
|
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();
|
|
|
|
?>
|