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

129 lines
6.8 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/curl.php');
$modeDebug=$noTimer=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)
-t Pas de timer du tout
";/* -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 't': $noTimer=true; break;
//case 'i': $iDeb=substr($argv[$i],3); 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
**/
echo date ('Y/m/d - H:i:s')." - Début de la mise à jour des juridictions par communes...".EOL;
$referer='http://www.justice.gouv.fr/recherche-juridictions/consult.php';
$iDb=new WDB('insee');
$tabVilles=$tabTri=array();
$lstCom=$iDb->select('jo.villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom','codeInsee NOT IN(SELECT codInsee FROM insee.insee_population) GROUP BY codeInsee');
//$lstCom=$iDb->select('villes', 'codeInsee, TRIM(CONCAT(ARTMAJ,NCC)) as LibCom',"codeInsee LIKE '2A%' OR codeInsee LIKE '2B%' GROUP BY codeInsee");
foreach ($lstCom as $i=>$tabCom) {
$tabVilles['_'.$tabCom['codeInsee']]=$tabCom['LibCom'];
$tabTri[]='_'.$tabCom['codeInsee'];
}
$nbVilles=count($tabVilles);
shuffle($tabTri);
echo date ('Y/m/d - H:i:s')." - Il y a $nbVilles communes à mettre à jour...".EOL;
foreach ($tabTri as $i=>$codeInsee) {
$numInsee=substr($codeInsee,1,5);
$libInsee=$tabVilles[$codeInsee];
$url="http://www.insee.fr/fr/ppp/bases-de-donnees/recensement/populations-legales/commune.asp?annee=2007&depcom=".$numInsee;
// $url="http://www.justice.gouv.fr/recherche-juridictions/popup.php?insee=$numInsee&type=all";
$page=getUrl($url, '', '', $referer, false, 'www.insee.fr');
$body=$page['body'];
$majCommune=false;
//print_r($page);
//die();
/*<div id="contenu">
<h1>02397-Jussy</h1>
<div class="presentation">
<p><strong>Région</strong>&nbsp;: Picardie</p>
<p><strong>Département</strong>&nbsp;: 02-Aisne</p>
<p><strong>Arrondissement</strong>&nbsp;: Saint-Quentin</p>
<p><strong>Canton</strong>&nbsp;: Saint-Simon</p>
<p><strong>Commune</strong>&nbsp;: 02397-Jussy</p>
</div>
<h2>Populations légales 2007 de la commune</h2>
<p>Pour les communes concernées, les données relatives aux <strong>fractions cantonales</strong> et/ou aux <strong>communes <p>Les populations légales sont désormais actualisées chaque année. Toutefois, les enquêtes de recensement étant réparties sur cinq années, il est recommandé de calculer les évolutions sur des périodes d'au moins cinq ans. Pour l'instant, <strong>la référence pou le calcul des évolutions reste donc le recensement de 1999</strong>.</p>
<table summary="02397 - Populations légales 2007 de la commune de Jussy - Population légale de la commune">
<caption>Populations légales 2007 de la commune de Jussy</caption>
<thead>
<tr>
<th scope="col"><a href="/fr/methodes/default.asp?page=definitions/population-municipale-rrp.htm">Po pulation municipale</a></th>
<th scope="col"><a href="/fr/methodes/default.asp?page=definitions/popul-comptee-a-part-rrp.htm">Pop ulation comptée à part</a></th>
<th scope="col"><a href="/fr/methodes/default.asp?page=definitions/population-totale-rrp.htm">Popula tion totale</a></th>
</tr>
</thead>
<tfoot>
<tr>
<td class="source" colspan="3">Source : Recensement de la population 2007 - Limites territoriales au 1<sup>er</sup> janvier 2009</td>
</tr>
</tfoot>
<tbody>
<tr>
<td class="tab-chiffre">1 244</td>
<td class="tab-chiffre">23</td>
<td class="tab-chiffre">1 267</td>
</tr>*/
if (preg_match('/<tbody>(?:\s+)<tr>(?:\s+)<td class="tab-chiffre">(.*)<\/td>(?:\s+)<td class="tab-chiffre">(.*)<\/td>(?:\s+)<td class="tab-chiffre">(.*)<\/td>(?:\s+)<\/tr>/Uis', $body, $results)) {
//print_r($results);
$tabInsert=array( 'codInsee' => $numInsee,
'popMunicipaleTxt'=> trim(strtr($results[1], array(chr(160)=>'', ' '=>''))),
'popCptApartTxt'=> trim(strtr($results[2], array(chr(160)=>'', ' '=>''))),
'popTotaleTxt' => trim(strtr($results[3], array(chr(160)=>'', ' '=>''))),
'popMunicipale' => trim(strtr($results[1], array(chr(160)=>'', ' '=>'')))*1,
'popCptApart' => trim(strtr($results[2], array(chr(160)=>'', ' '=>'')))*1,
'popTotale' => trim(strtr($results[3], array(chr(160)=>'', ' '=>'')))*1,
'popAnnee' => 2007,
);
if (preg_match('/<p><strong>Région<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['region']=trim($results2[1]);
if (preg_match('/<p><strong>Département<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['dept']=trim($results2[1]);
if (preg_match('/<p><strong>Arrondissement<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['arrond']=trim($results2[1]);
if (preg_match('/<p><strong>Canton<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['canton']=trim($results2[1]);
if (preg_match('/<p><strong>Commune<\/strong>&nbsp;\:(.*)<\/p>/Uis', $body, $results2))
$tabInsert['commune']=trim($results2[1]);
$ret=$iDb->insert('insee_population', $tabInsert);
// print_r($tabInsert);
echo date ('Y/m/d - H:i:s')." - Commune ".$tabInsert['commune'].' : '.$tabInsert['popTotale']." habitants ($ret)".EOL;
//die();
}
randsleep(1,2);//3,7);//7,21);//29,100);//
}
die();
?>