batch/old/getCFE.php
2013-06-19 08:24:49 +00:00

144 lines
6.0 KiB
PHP

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/**
** Ce script récupère les tribunaux compétents pour les codes insee des communes (site du ministère de la justice)
** URL = http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01053&type=all
** referer = http://www.justice.gouv.fr/recherche-juridictions/consult.php
**
** Il faudrait penser à mettre à jour en automatique la liste des communes depuis le site de l'insee !!!
** URL = http://www.insee.fr/fr/nom_def_met/nomenclatures/cog/cog.telechargement.annee.asp?annee=2007
**/
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(FWK_PATH.'common/curl.php');
$referer='http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcfeaf.jsp';
$iDb=new WDB();
$iInsee=new MInsee();
/*
$url='http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=01000&type=all';
$page=getUrl($url, '', '', $referer, false, 'www.justice.gouv.fr');
die($page['body']);
*/
$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','codeInsee BETWEEN 85068 AND 91000 GROUP BY codeInsee');// "`Code Insee`<'10000'");
foreach ($lstCom as $i=>$tabCom) {
$numInsee=$tabCom['codeInsee'];
$dep=substr($numInsee,0,2);
if ($dep==97) {
$dep=substr($numInsee,0,3);
$com=substr($numInsee,3,2);
} else
$com=substr($numInsee,2,3);
$url="http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/Controleur.jsp?ddd=$dep&ccc=$com&service=lcfer&type=NULL&Valider=Valider";
$page=getUrl($url, '', '', $referer, false, 'annuaire-cfe.insee.fr');
$body=$page['body'];
if (strpos($body, "<P>Erreur rencontrée : java.lang.NullPointerException</P>")==0)
{
//print_r($page);
$cookie=$page['header']['Set-Cookie'];
$page=getUrl('http://annuaire-cfe.insee.fr/AnnuaireCFE/jsp/lcferf.jsp', $cookie, '', $url, false, 'annuaire-cfe.insee.fr');
$body=$page['body'];
if (preg_match('/<font size="2" face="Arial, Helvetica, sans-serif" color="#D01010">(?:.*)([\d]{2,3})(?:.*)- (.*) \/ (.*)<\/b><\/font><\/td>/Uis', $body, $matches)) {
$depLu=$matches[1];
$depLib=$matches[2];
$comLib=$matches[3];
}
/*<b>01
- AIN / L' ABERGEMENT CLEMENCIAT</b></font></td>*/
$tabTmp=explode('<tr bgcolor="#FFFFFF">',$body);
//print_r($tabTmp);die();
$sleep=false;
foreach ($tabTmp as $j=>$tabTrib) {
if ($j<2) continue;
if (preg_match('/<td valign="top" width="48%"> <font face="Arial, Helvetica, sans-serif" size="2">(?:.*)<b>(.*)<\/b><br>(.*)<\/font>/Uis', $tabTrib, $results)) {
$libTri=strip_tags($results[1]);
if (preg_match("/^Chambre de commerce et d'industrie$/i", $libTri)) $typeTri='O';// CCI
elseif (preg_match("/^Chambre de métiers et de l'artisanat/i", $libTri)) $typeTri='T';// CM
elseif (preg_match("/^Chambre de métiers/i", $libTri)) $typeTri='T';// CM
elseif (preg_match("/^Greffe du tribunal de commerce/i", $libTri)) continue;//$typeTri='C';// TC
elseif (preg_match("/^Chambre d'agriculture/i", $libTri)) $typeTri='R';// AGR
elseif (preg_match("/^Chambre nationale de la batellerie artisanale/i", $libTri)) $typeTri='N';// BAR
elseif (preg_match("/^URSSAF/i", $libTri)) $typeTri='U';// URS
elseif (preg_match("/^Centre des impôts/i", $libTri)) $typeTri='Z';// CDI
else die("Libellé CFE '$libTri' inconnu !");
} else die('Erreur fatale');/*</b><br>
1 RUE JOSEPH BERNIER<br>
01000 BOURG EN BRESSE<br>
Tél : 04 74 32 13 00<br>
Fax : 04 74 21 42 63<br>
<a href="http://WWW.AIN.CCI.FR" target="_new">WWW.AIN.CCI.FR</a>
</font>*/
if (preg_match_all('/(.*)(?:<br>|<\/a>)/Uis', $results[2], $results)) {
//print_r($results);die();
$results2=$results[1];
$adresse1=trim($results2[0]);
$adresse2=trim($results2[1]);
if (substr($adresse2,0,5)*1>0) {
$adresse2='';
$i=1;
} else $i=2;
$cpVille=trim(@$results2[$i]);
$cp=substr($cpVille,0,5)*1;
$ville=trim(substr($cpVille,5));
$tel=str_replace(' ','',strtr(@$results2[$i+1], 'TélFax :.',' '))*1;
$fax=str_replace(' ','',strtr(@$results2[$i+2], 'TélFax :.',' '))*1;
if (preg_match('/<a href="(.*)"/Ui', trim(@$results2[$i+3]), $results2)) $web=strtolower($results2[1]);
if ($web=='http://') $web='';
$id=md5($typeTri.$adresse1.$cp.$ville);
$str=$tabCom['codeInsee'].";1;$depLu;$depLib;$comLib;$id;$typeTri;$adresse1;$adresse2;$cp;$ville;$cpVille;$tel;$fax;$web";
$trib=$iDb->select('tribunaux', 'triId, triCode, triType, triNom, triCP, triTel, triFax', "triType='$typeTri' AND triCommentaire='$id'");
if (isset($trib[0]['triId'])) {
$id=$trib[0]['triId'];
$code=$trib[0]['triCode'];
$nom=$trib[0]['triNom'];
} else {
// Il faut insérer la fiche ID de la compétence
$tabAdr=$iInsee->structureVoie($adresse1);
$tabInsert=array('triType'=>$typeTri,
'triNom'=> $libTri,
'triCP'=>$cp,
'triWeb'=>$web,
'triAdrNum'=>$tabAdr['num'],
'triAdrIndRep'=>@$tabAdr['indRep'],
'triAdrTypeVoie'=>$tabAdr['typeVoie'],
'triAdrVoie'=>$tabAdr['libVoie'],
'triAdrComp'=>$adresse2,
'triVille'=>$ville,
'triTel'=>$tel,
'triFax'=>$fax,
'triCommentaire'=>$id,
);
$id=$iDb->insert('tribunaux', $tabInsert);
$code='';
$nom=$libTri;
print_r($tabInsert);
$sleep=true;
}
echo $str;
if ($id>0) {
$ret=$iDb->insert('tribunauxInsee', array('CodeInsee'=>$tabCom['codeInsee'],'triId'=>$id));
if (!$ret) {
echo ' Déjà en base.';
}
else {
echo ' ===> INSERE !!!';
$sleep=true;
}
echo "\n";
}
}
}
} else {
$str=$tabCom['codeInsee'].";0;;;".$tabCom['LibCom']."\n";
echo $str;
}
/*if ($sleep) randsleep(5, 15);//7,21);
else randsleep(2, 7);*/
// sleep(2);
}
die();
?>