LogAcceso.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /*
  3. * Objeto para escribir y leer datos de acceso
  4. */
  5. class LogAcceso {
  6. //put your code here
  7. private $file, $month, $year;
  8. private $dir;
  9. function __construct(){
  10. $this->month = date("m");
  11. $this->year = date("Y");
  12. $this->dir = $_SERVER['DOCUMENT_ROOT']."/log/";
  13. $this->updateFilename();
  14. }
  15. function setMes($mes){
  16. $this->month = $mes;
  17. $this->updateFilename();
  18. }
  19. function setAno($ano){
  20. $this->year = $ano;
  21. $this->updateFilename();
  22. }
  23. private function updateFilename(){
  24. $this->file = "acceso_".$this->year."_".$this->month.".log";
  25. }
  26. private function cleanLog($text){//remueve || de los textos
  27. return trim(str_ireplace( "||" , "" , $text));
  28. }
  29. function appendLog($usr_id, $usr_name){
  30. $filename = $this->dir.$this->file;
  31. if (!file_exists($this->dir)){
  32. mkdir($this->dir, 0755, true);
  33. }
  34. if (file_exists($this->dir)){
  35. $data = date('Y-m-d H:i:s')."||".$usr_id."||".$this->cleanLog(strtoupper($usr_name))."\n";
  36. file_put_contents($filename, $data, FILE_APPEND);
  37. }
  38. }
  39. function getLog($mes ="", $ano = ""){
  40. if($mes != "") setMes($mes);
  41. if($ano != "") setAno($ano);
  42. $filename = $this->dir.$this->file;
  43. if (file_exists($filename)){
  44. return file ($filename , FILE_SKIP_EMPTY_LINES);
  45. }else{
  46. return array();
  47. }
  48. }
  49. }