108 lines
2.5 KiB
PHP
Executable File
108 lines
2.5 KiB
PHP
Executable File
<?php define('__ROOT__', dirname(__FILE__) );
|
|
require_once __ROOT__.'/manager/autoloader.php';
|
|
|
|
use \manager\ModuleRequest;
|
|
use \manager\ResourceDispatcher;
|
|
use \manager\ManagerError;
|
|
use \manager\Repo;
|
|
|
|
debug();
|
|
|
|
|
|
|
|
|
|
|
|
/* PARSAGE DE JOURNAUX D'APPEL
|
|
*
|
|
*
|
|
*/
|
|
function parseCallLog(){
|
|
|
|
/* [1] On recupere le journal d'appel
|
|
=========================================================*/
|
|
$filename = 'calllog.xml';
|
|
$file = simplexml_load_file( $filename );
|
|
|
|
/* [2] On parcours chaque ligne
|
|
=========================================================*/
|
|
$names = array(); // Contiendra les correspondances num/names
|
|
$msms = array(); // Contiendra les personnes utilisant SMS/MMS
|
|
$call = array(); // Contiendra les personnes utilisant CALL
|
|
|
|
|
|
|
|
/* [3] On parcours chaque ligne
|
|
=========================================================*/
|
|
foreach($file->Item as $log){
|
|
// On recupere le numero en string
|
|
$num = (string) $log['Number'];
|
|
|
|
// On formatte le numero
|
|
if( preg_match("/^(?:\+33|33|0)(.+)/", $num, $m) )
|
|
$num = '0'.$m[1];
|
|
|
|
|
|
/* (1) Si le type est MMS ou SMS */
|
|
if( $log['Type'] == 'SMS' || $log['Type'] == 'MMS' ){
|
|
|
|
// Si la personne n'est pas referencee, on l'ajoute
|
|
// Sinon on incremente son nombre d'apparition
|
|
if( isset($msms[$num]) )
|
|
$msms[$num]+= 1;
|
|
else
|
|
$msms[$num] = 1;
|
|
|
|
// On enregistre le nom si c'est pas fait
|
|
if( !isset($names[$num]) ) $names[$num] = $log['Name'];
|
|
|
|
|
|
/* (2) Si le type est PHONE */
|
|
}else if( $log['Type'] == 'PHONE' ){
|
|
|
|
// Si la personne n'est pas referencee, on l'ajoute
|
|
// Sinon on incremente son nombre d'apparition
|
|
if( isset($call[$num]) )
|
|
$call[$num]+= 1;
|
|
else
|
|
$call[$num] = 1;
|
|
|
|
// On enregistre le nom si c'est pas fait
|
|
if( !isset($names[$num]) ) $names[$num] = $log['Name'];
|
|
|
|
}
|
|
|
|
// var_dump( $log );
|
|
}
|
|
|
|
|
|
/* [4] On trie par nombre de contacts
|
|
=========================================================*/
|
|
// rsort($msms);
|
|
// rsort($call);
|
|
|
|
/* [5] On debug les donnees recues
|
|
=========================================================*/
|
|
echo "Il y a ".count($names)." personnes :<br>";
|
|
echo "- ".count($msms)." par SMS/MMS<br>";
|
|
echo "- ".count($call)." par telephone<br><br>";
|
|
|
|
echo 'Soit par ordre d\'affinites : <br>';
|
|
echo "TOP 10 DES APPELS<br>";
|
|
echo "=================<br>";
|
|
$count = 0;
|
|
foreach($call as $k=>$v){
|
|
var_dump( $k );
|
|
|
|
var_dump( $names[$k] ." => ". $v ." appels");
|
|
$count++;
|
|
}
|
|
// var_dump( $call );
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
parseCallLog();
|
|
|
|
?>
|