batch/1.1/old/getTelFaxIdentite.php

262 lines
9.3 KiB
PHP
Raw Normal View History

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
include_once(INCLUDE_PATH.'partenaires/classMWeb.php');
include_once(FWK_PATH.'mail/sendMail.php');
error_reporting(E_ALL ^ E_NOTICE);
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
2013-06-19 08:24:49 +00:00
Recherche des t<EFBFBD>l<EFBFBD>phones, fax, sites Web et mails pour les fiches d'identit<EFBFBD>s consult<EFBFBD>es et MAJ des infos_entrep trop anciennes.
Options :
2013-06-19 08:24:49 +00:00
-i Mise <EFBFBD> jour des infos_entrep anciennes
-t Mise <EFBFBD> jour des t<EFBFBD>l<EFBFBD>phones anciens
";
$infosEntrep=$telFax=false;
$argv=$_SERVER['argv'];
2013-06-19 08:24:49 +00:00
if ($_SERVER['argc']==1) $semiManuel=false; // Fonctionnement normal du script, c<>d : on sirene que en auto
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'i':
$infosEntrep=true;
break;
case 't':
$telFax=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
$iDb=new WDB('sdv1');
$iWeb=new MSitesWeb();
$iInsee=new MInsee();
if (!$infosEntrep && !$telFax) $infosEntrep=$telFax=true;
if ($telFax) {
2013-06-19 08:24:49 +00:00
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de recherche des t<>l/fax...".EOL;
$nbTel=$iDb->select('logs', 'siren, nic, dateHeure',"siren>1000 AND page IN ('identite')
AND dateHeure>=DATE_SUB(NOW(), INTERVAL 1 DAY) GROUP BY siren, nic ORDER BY dateHeure", false,MYSQL_ASSOC,true);
//echo mysql_error();
/*SELECT *
FROM `infos_entrep`
WHERE `nscrl` =0
ORDER BY `infos_entrep`.`dateUpdate` ASC*/
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - Il y a $nbTel <20>tablissements <20> mettre <20> jour en TEL/FAX...".EOL;
$nbSiret=$siretTrouve=$siretEnCache=$siretActif=$siretInactif=$siretInfosEntrepCache=$siretInfosEntrepMaj=0;
while ($tabTel=$iDb->fetch(MYSQL_ASSOC)) {
$nbSiret++;
$siren= $tabTel['siren'];
//$siren= 448364232;
$nic= $tabTel['nic'];
$date= $tabTel['dateHeure'];
// $siren=504284159; $nic=0;
if ($sirenPre==$siren && $sirenTrouve==false) {
2013-06-19 08:24:49 +00:00
$ligne=date('Y/m/d H:i:s')." - Siret $siren $nic : d<>j<EFBFBD> trait<69> sans succ<63>s ($date)";
echo $ligne.EOL;
continue;
}
$tabIdentite=$iInsee->getIdentiteEntreprise($siren, $nic, 0, false,false);
$rs=$tabIdentite['Nom'];// Nom2, Sigle, Enseigne
if ($tabIdentite['Actif']==1) {
$tdeb=microtime(1);
$iTel=new MTel(true);
$tmp=$iTel->getTel($siren);
if (count($tmp)>0 && $nic*1>0) {
$tmp=$iTel->getTel($siren, $nic);
$sirenTrouve=true;
$siretTrouve++;
} else
$sirenTrouve=false;
if ($iTel->enCache)
$siretEnCache++;
$duree=round(microtime(1)-$tdeb,3);
$tabIdentitePart=$iInsee->getIdentitePart($siren, $rs, $enseigne, $sigle, $nic, true);
if ($tabIdentitePart['enCache']) {
$strLigne='en cache';
$siretInfosEntrepCache++;
} else {
$duree2=$tabIdentitePart['duree'];
$strLigne="MAJ en $duree2 s";
$siretInfosEntrepMaj++;
}
2013-06-19 08:24:49 +00:00
$ligne=date('Y/m/d H:i:s')." - Siret n<>$nbSiret/$nbTel, $siren $nic : infos entreps $strLigne, ".count($tmp)." ligne(s) tel/fax en $duree s ($date)";
$siteWeb=$iWeb->findSiteWeb($siren, $rs);
echo "$ligne ($siteWeb)".EOL;//die();
randsleep(3,7);
$siretActif++;
} else
$siretInactif++;
$sirenPre=$siren;
}
2013-06-19 08:24:49 +00:00
$message="Sur les $nbSiret fiches consult<6C>s hier, nous avions $siretActif fiches actives.
Nous avons trouv<EFBFBD>s $siretTrouve contacts t<EFBFBD>l<EFBFBD>phoniques dont $siretEnCache en cache.
Nous avons mis <EFBFBD> jour $siretInfosEntrepMaj fiches 'infos_entrep' ($siretInfosEntrepCache en cache).\r\n".EOL;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des informations TEL/FAX', $message);
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - FIN de la mise <20> jour des TEL/FAX des entreprises ($nbAvecMaj MAJ/$nbTel avec $nbErr erreurs).".EOL;
}
if ($infosEntrep) {
echo date('Y/m/d - H:i:s') ." - DEBUT du programme de recherche des infos_entrep...".EOL;
$nbTel=$iDb->select('jo.infos_entrep', 'siren, 0 AS nic, dateUpdate AS dateHeure',"nscrl=0 ORDER BY dateUpdate ASC LIMIT 0,1000", false,MYSQL_ASSOC,true);
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - Il y a $nbTel <20>tablissements <20> mettre <20> jour en infos_entrep...".EOL;
$nbSiret=$siretTrouve=$siretEnCache=$siretActif=$siretInactif=$siretInfosEntrepCache=$siretInfosEntrepMaj=0;
while ($tabTel=$iDb->fetch(MYSQL_ASSOC)) {
$nbSiret++;
$siren= $tabTel['siren'];
$nic= $tabTel['nic'];
$date= $tabTel['dateHeure'];
// $siren=504284159; $nic=0;
$tabIdentite=$iInsee->getIdentiteEntreprise($siren, $nic, 0, false,false);
if ($tabIdentite['Actif']==1) {
$tdeb=microtime(1);
$iTel=new MTel();
$tmp=$iTel->getTel($siren);
if (count($tmp)>0 && $nic*1>0) {
$tmp=$iTel->getTel($siren, $nic);
$sirenTrouve=true;
$siretTrouve++;
} else
$sirenTrouve=false;
if ($iTel->enCache)
$siretEnCache++;
$duree=round(microtime(1)-$tdeb,3);
$tabIdentitePart=$iInsee->getIdentitePart($siren, $rs, $enseigne, $sigle, $nic, true);
if ($tabIdentitePart['enCache']) {
$strLigne='en cache';
$siretInfosEntrepCache++;
} else {
$duree2=$tabIdentitePart['duree'];
$strLigne="MAJ en $duree2 s";
$siretInfosEntrepMaj++;
}
2013-06-19 08:24:49 +00:00
$ligne=date('Y/m/d H:i:s')." - Siret n<>$nbSiret/$nbTel, $siren $nic : infos entreps $strLigne, ".count($tmp)." ligne(s) tel/fax en $duree s ($date)";
echo $ligne.EOL;
randsleep(3,7);
$siretActif++;
} else
$siretInactif++;
}
$message="Sur les $nbSiret infos_entrep anciennes du jour, nous avions $siretActif fiches actives.
2013-06-19 08:24:49 +00:00
Nous avons trouv<EFBFBD>s $siretTrouve contacts t<EFBFBD>l<EFBFBD>phoniques dont $siretEnCache en cache.
Nous avons mis <EFBFBD> jour $siretInfosEntrepMaj fiches 'infos_entrep' ($siretInfosEntrepCache en cache).\r\n".EOL;
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', 'Chargement des informations infos_entrep anciennes', $message);
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - FIN de la mise <20> jour des infos_entrep anciennes des entreprises ($nbAvecMaj MAJ/$nbTel avec $nbErr erreurs).".EOL;
}
die();
function chechSirenSiteAfnic($siteWeb) {
$referer='http://www.afnic.fr/';
$url='http://www.afnic.fr/outils/whois/'.$siteWeb;
//die(print_r(parse_url('http://www.'.$siteWeb.'/')));
/*print_r(pathinfo('http://www.'.$siteWeb.'/index.html'));
print_r(pathinfo($siteWeb));
die();*/
$page=getUrl($url, '', '', $referer);
if ($page['code']==200) {
2013-06-19 08:24:49 +00:00
if(preg_match('/<li>Identifi<66> gr<67>ce au num<75>ro de SIREN <a href="(?:.*) target="_blank" class="ext">(.*)<\/a><\/li>/Uis', $page['body'], $matches))
return html_entity_decode($matches[1]);
}
return false;
}
chechSirenSiteAfnic('dipinfo.fr');
function findSiteWeb($siren, $nomEntrep='') {
global $iDbUpdate;
$referer='http://www.google.fr/';
$siren2=implode(' ', str_split($siren, 3));
if ($nomEntrep<>'') $rs2="OR \"$nomEntrep\"";
$tabSitesExclus=array('societe.com','bilans.net','gouv.fr','info-financiere.fr','bodacc.fr','manageo.fr','bilansgratuits.fr','lesechos.fr','google.fr');
$rs="$siren OR \"$siren2\" $rs2 -site:".implode(' -site:', $tabSitesExclus);
//-site:gouv.fr -site:info-financiere.fr -site:bodacc.fr -site:manageo.fr -site:bilansgratuits.fr -site:lesechos.fr -site:google.fr";
$url='http://www.google.fr/search?hl=fr&as_qdr=all&q='.urlencode($rs).'&btnG=Rechercher&num=100';//&meta=cr%3DcountryFR';
//http://www.google.fr/search?hl=fr&q=448364232+OR+%22448+364+232%22+-site%3Agouv.fr++-site%3Ainfo-financiere.fr+-site%3Abodacc.fr&btnG=Rechercher&meta=
$page=getUrl($url, '', '', $referer, false, 'www.google.fr','', 5);
//$fp=fopen('./findSiteWeb.log', 'a+');
if ($page['code']==200) {
$levMin=100;
$pctMin=0;
$urlLev=$urlPct='';
$body=$page['body'];
// url?q=http://www.zueblin.fr/files/FRAFinanceGeneralMeeting_file82.pdf
preg_match_all('/<a href="\/url\?q=http\:\/\/(.*)\/(?:.*)"/iU', $body, $matches);
$urlapprox="http://www.$nomEntrep.fr/";
foreach ($matches[1] as $i=>$url)
{
$url="http://$url/";
$lev=@levenshtein ($urlapprox,$url);
if ($lev>0 && $lev<$levMin) {
$levMin=$lev;
$urlLev=$url;
}
$sim=similar_text($urlapprox,$url,$pct);
if ($pct>$pctMin && strpos($url, 'zonebourse')===false) {
$pctMin=$pct;
$urlPct=$url;
}
if (preg_match('/\.(.*\.fr)\//', $url, $matches2)) {
$rep=$iDbUpdate->select('sitesWeb', 'siren, web', "web=$url");
if (@$rep[0]['siren']*1==0) {
$siren=chechSirenSiteAfnic($matches2[1]);
if ($siren) {
$tabInsert=array('siren'=>$siren,
'web'=>$url,
'dateInsert'=>date('YmdHis'));
$iDbUpdate->insert('sitesWeb', $tabInsert);
}
}
}
}
//fclose($fp);
if ($levMin<15 && $pctMin>44 && $urlLev==$urlPct) {
// fwrite($fp, date('Y-m-d H:i:s') .' - '. $page['code'] . " - $rs - $i - $lev (Min=$levMin) - $pct (Min=$pctMin) - $urlLev - $urlPct - $url !!! RETURNED !!!\n");
return $urlLev;
}
return false;
}
//fclose($fp);
return false;
}
?>