(.+?)<\/datetime>/msi', $str, $regs); $tab['datetime']= $regs[1]; preg_match('/(.+?)<\/errornum>/msi', $str, $regs); $tab['errornum']= $regs[1]; preg_match('/(.+?)<\/errortype>/msi', $str, $regs); $tab['errortype']=$regs[1]; preg_match('/(.+?)<\/errormsg>/msi', $str, $regs); $tab['errormsg']=$regs[1]; preg_match('/(.+?)<\/scriptname>/msi', $str, $regs); $tab['scriptname']=$regs[1]; preg_match('/(.+?)<\/scriptlinenum>/msi', $str, $regs); $tab['scriptlinenum']=$regs[1]; return $tab; } function parselog($str) { $regs = array(); if(!strlen($str)) { $array = array(); $array[] = ""; return $array; } // premier niveau du parser : récupération des pattern < while(preg_match("/(.+?)<\/errorentry>/msi", $str, $regs)) { # on check s'il y a un pattern flml, si oui -> $tab[0] $pattern=$regs[0]; $tab = array(parseentry($pattern)); $del = preg_replace("/\//", "\/", quotemeta($pattern)); $str = preg_replace("/$del/msi", "", $str); } return $tab; } print ""; print "
"; print "Journal des événements"; print "
"; if(!$del) { if($fp=fopen($logfile, 'r')) { $str=fread($fp, filesize($logfile)); fclose($fp); // récupération du tableau des entrées $entry = parselog($str); if (!empty($entry) && filesize($logfile) > 0) { $entry = array_reverse($entry); print "vider le journal"; print ""; foreach ($entry as $cle => $valeur) { switch($valeur['errornum']) { case E_CORE_ERROR: case E_COMPILE_ERROR: case E_USER_ERROR: case E_ERROR; $evt_icon=""; $bgcolor='#ffffff'; break; case E_PARSE: case E_COMPILE_WARNING: case E_CORE_WARNING: case E_USER_WARNING: case E_WARNING: $evt_icon=""; $bgcolor='#ffffff'; break; case E_USER_NOTICE: case E_NOTICE: $evt_icon=""; $bgcolor='#e0e0e0'; break; } print "'; } print '
$evt_icon"; print ''.$valeur['errortype'].' '; print $valeur['datetime']; print '
'.$valeur['errormsg'].'
'; print 'script : '.$valeur['scriptname'].' ligne '; print $valeur['scriptlinenum']; print '
'; } else { print "le fichier journal est vide"; } } else { print "impossible d'ouvrir le fichier journal"; } } else { if($fp=fopen($logfile, 'w')) { fwrite($fp, ''); fclose($fp); print "le fichier journal a été purgé"; } else { print "impossible de purger le fichier journal"; } } print "
";