Return to Snippet

Revision: 49593
at July 26, 2011 02:17 by Darksider3


Initial Code
<?php
/**
 * ================================================
 * File: Log.class.php
 * Version: 0.2 ALPHA
 * License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported 
 * Author: Leon Giesenkämper, 2011
 * **Description:
 *         **Eine Klasse zum einfachen erstellen, booten,beschreiben und anzeigen von Log dateien
 * Thanks to: The Bigforum Team (http://www.bigforum-support.de)
 * and my Freehost: PHPfriends(http://www.php-friends.de)
 */
define("trimmer", "---");
if(!defined("trimmer")){
    echo "Sorry, you haven't give an trimmer for the Logs! Please deklare that with define('trimmer', 'trimmertext')";
}

abstract class Logs {
    /**
     * Die Datei
     * @access protected
     * @var string
     * */
    protected $Datei;
    /**
     * Der Zu schreibene Text
     * @var string
     * @access public
     * */
    public $datas;
    /**
     * Der Handler von fopen
     * @var mixed,bool
     * @access private
     */
    private $fop;
    /**
     * Verzeichniss
     * @var string
     * @access public 
     */
    public $dir;
    /**
     * __construct, öffnet datei und gibt den Händler von fopen
     * @param  string    $Datei   Die Datei, verzeichniss anpassen!
     * @param  string    $punkt   [Optional]Der Punkt der vor die schrägstriche gesetzt werden soll...
     * @param  string    $mode    [Optional]Mode, Modus zum öffnen der Date
     * @uses   string    $this->Datei  Die Datei..
     * @uses   string    $this->fop das 'Giveback' von fopen
     * @uses   string    $this->dir   Das verzeichniss
     * @access public
     * @return bool true
     */
    public function __construct($Datei,$punkt=".", $mode="a+"){
        $this->dir = "$punkt/log/";
        $this->Datei = $this->dir.$Datei;
        $this->fop = fopen($this->Datei, $mode);
        return true;
    }
    /**
     * Insert, Schreibt text,uhrzeit und Datum in Datei
     * @param string   $Username   Der Username, über den ein Log geschrieben werden soll
     * @param string   $Text       Der Zu Loggende Text
     * @uses string    $this->datas  Die Daten
     * @uses string    $this->fo     Der Giveback handler von fopen 
     * @access public
     * @return bool true
     */
    public function Insert($Username, $Text){
        $time = getdate();
        $this->datas .= "Username: ".$Username." ".trimmer;
        $this->datas .= " At ".$time['hours'].":". $time['minutes'] .":". $time['seconds'].trimmer;
        $this->datas .= $time['mday'].".". $time['mon'] .".".$time['year'].trimmer;
        $this->datas .= "Logging-Text:".$Text. "
";
        fwrite($this->fop, $this->datas);
        return true;
    }
    /**
     * ShowLog, LogDateien Anzeigen lassen, Verzeichniss Anpassen(!)
     * @param string    $Datei    [optional]Datei die Angezeigt werden soll
     * @param string    $punkt    [Optional]Der Punkt der vor dem ersten Slash vorhanden sein soll
     * @param bool      $withnumbers [optional] In Textarea feld anzeigen oder mit zeilennumern
     * @uses string     $this->Datei   Die Datei
     * @access public
     * @return bool true
     */
     //@todo: make the option 'withnumbers'...
    public function ShowLog($Datei=FALSE,$punkt = ".",$withnumbers=FALSE){
        if($Datei != FALSE){
            echo "<h1>Ausgabe der Log Datei: $Datei</h1>";
            $res = file($Datei);
        }
        else {
            echo "<h1>Ausgabe der Log Datei: $Datei</h1>";
            $res = file($this->Datei);
        }
        if(!$withnumbers){
            echo "<textarea cols=100 rows=20>";
            foreach($res as $Result){
                echo $Result."
";
            }
            echo "</textarea>";
        }
        return true;
        /*
        else{
            foreach ($res as $line_num => $line) {
                echo "<span style='color: #EB3F19'>Zeile #<b>{$line_num}</b></span> : " . htmlspecialchars($line) . "<br>";
            }
        }
        */
    }
    /**
     * BootLog, Log-Datei Leeren
     * @param string   $Datei  Log-Datei welche geleert werden soll
     * @access public
     * @uses string $this->Datei Die datei
     * @return bool true
     */
    public function BootLog(){
        $tj = fopen($this->Datei, "w+");
        fwrite($tj, "");
        fclose($tj);
        return true;
    }
    /**
     * Delete, Logs löschen
     * @param bool $message [optional]Soll eine erfolgsnachricht geschrieben werden?
     * @uses string $this->Datei  Die Datei
     * @access public
     * @return bool true
     */
    public function Delete($message=FALSE){
        if(!$message){
            unlink($this->Datei);
        }
        else{
            unlink($this->Datei) or die ("Can't delete the file '$this->Datei'");
            echo "The file '$this->Datei' was deleted...";
        }
        return true;
    }
    /**
     * __destruct, Datei Schließen
     * @param None
     * @access public
     * @uses $this->fop
     * @return bool true
     */
    public function __destruct(){
        fclose($this->fop);
        return true;
    }
}
class Log extends Logs{}
/*
$Log = new Log("log.log");
$Log->Insert("Dark", "INTERNATIONAL ERROR!");
$Log->BootLog();*/
?>

Initial URL
http://darksider3.pf-control.de/all/scripts.php?id=LDG%29LogClass

Initial Description
A Class to Logging false logins and more...

Initial Title
LDG)PHP Log class

Initial Tags
class, php

Initial Language
PHP