2012-10-16 07:44:31 +00:00
#!/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 .
2012-10-16 07:44:31 +00:00
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
2012-10-16 07:44:31 +00:00
" ;
$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
2012-10-16 07:44:31 +00:00
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 ;
2012-10-16 07:44:31 +00:00
$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 ;
2012-10-16 07:44:31 +00:00
$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 ) " ;
2012-10-16 07:44:31 +00:00
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 ) " ;
2012-10-16 07:44:31 +00:00
$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;
2012-10-16 07:44:31 +00:00
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 ;
2012-10-16 07:44:31 +00:00
}
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 ;
2012-10-16 07:44:31 +00:00
$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 ) " ;
2012-10-16 07:44:31 +00:00
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;
2012-10-16 07:44:31 +00:00
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 ;
2012-10-16 07:44:31 +00:00
}
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 ))
2012-10-16 07:44:31 +00:00
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 ;
}
?>