262 lines
9.3 KiB
PHP
262 lines
9.3 KiB
PHP
|
#!/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]
|
||
|
Recherche des téléphones, fax, sites Web et mails pour les fiches d'identités consultées et MAJ des infos_entrep trop anciennes.
|
||
|
|
||
|
Options :
|
||
|
-i Mise à jour des infos_entrep anciennes
|
||
|
-t Mise à jour des téléphones anciens
|
||
|
|
||
|
";
|
||
|
$infosEntrep=$telFax=false;
|
||
|
|
||
|
$argv=$_SERVER['argv'];
|
||
|
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) {
|
||
|
|
||
|
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*/
|
||
|
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbTel établissements à mettre à 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) {
|
||
|
$ligne=date('Y/m/d H:i:s')." - Siret $siren $nic : déjà traité sans succè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++;
|
||
|
}
|
||
|
|
||
|
$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;
|
||
|
}
|
||
|
$message="Sur les $nbSiret fiches consultés hier, nous avions $siretActif fiches actives.
|
||
|
Nous avons trouvés $siretTrouve contacts téléphoniques dont $siretEnCache en cache.
|
||
|
Nous avons mis à 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);
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s')." - FIN de la mise à 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);
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbTel établissements à mettre à 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++;
|
||
|
}
|
||
|
|
||
|
$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.
|
||
|
Nous avons trouvés $siretTrouve contacts téléphoniques dont $siretEnCache en cache.
|
||
|
Nous avons mis à 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);
|
||
|
|
||
|
echo date ('Y/m/d - H:i:s')." - FIN de la mise à 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) {
|
||
|
if(preg_match('/<li>Identifié grâce au numé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;
|
||
|
}
|
||
|
?>
|