php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.12.2006, 17:26  
Benutzer
 
Registriert seit: 31.03.2005
Beiträge: 80
Anotherone
Standard Dateiname der aktuellen Datei?

Gibt es etwas, mit dem man sich den aktuellen Dateinamen der jeweiligen PHP-Datei anzeigen lassen kann, in der man sich gerade befindet? Hintergrund ist folgender: Ich muss hin und wieder in einem Onlineshop (xtCommerce) "Debug"ausgaben generieren. Nur leider wird da viel mit include/require eingebunden, sodaß man nicht immer auf Anhieb die Stelle wiederfindet, an der man das echo oder print_r eingefügt hat. Da wäre eine Funktion hilfreich, die man einfach kopieren könnte(damit ich nicht jedesmal den kompletten Pfad eintragen muss).

Beispiel:

echo current_filename() . ": " . $variable;

Ergebnis:

includes/classes/session.php: 12345

Gibt es da was? PHP_SELF hilft mir ja nicht, da immer die Ausgangsdatei angegeben wird, die auch in der Adresszeile steht (man korrigiere mich, wenn ich mich irre).
Anotherone ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.12.2006, 17:28  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

__FILE__
__LINE__
Flor1an ist offline  
Alt 12.12.2006, 17:48  
Benutzer
 
Registriert seit: 31.03.2005
Beiträge: 80
Anotherone
Standard

Vielen Dank!!!
Anotherone ist offline  
Alt 12.12.2006, 17:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Habe mir diese Debug-Funktion vor einigen Monaten geschrieben.

Verwendung:
PHP-Code:
<?php
Debug
::write($var1$var2, ..);
Debug::stop($var1$var2, ..);
?>
stop() beendet das Skript nach der Ausgabe

PHP-Code:
<?php
////////////////////////////////////////////////////////////////////////////////////////////////////

class Debug
{
    
////////////////////////////////////////////////////////////////////////////////////////////////
    // public static functions
    
    /* public static */ 
function write()
    {
        
$aArgv func_get_args();
        for (
$i 0$k 1$iCount count($aArgv); $i $iCount$i++, $k++) {
            echo 
Debug::output($aArgv[$i], "ARG-$k");
        } 
        echo 
Debug::backtrace();       
    }
    
    
/* public static */ function stop()
    {
        
$aArgv func_get_args();
        for (
$i 0$k 1$iCount count($aArgv); $i $iCount$i++, $k++) {
            echo 
Debug::output($aArgv[$i], "ARG-$k");
        }
        echo 
Debug::backtrace();
        echo 
Debug::output('script stopped''MESSAGE'false);
        exit;
    }
    
    
    
////////////////////////////////////////////////////////////////////////////////////////////////
    // private static functions
    
    /* private static */ 
function output($mVariable$sTitle ''$bShowType true)
    {
        if (
$bShowType) {
            
ob_start();
            
var_dump($mVariable);
            
$sContents ob_get_contents();
            
ob_end_clean();
        } else {
            
$sContents print_r($mVariabletrue);
        } 
        return 
sprintf("<pre>DEBUG %s\n%s\n</pre>"strtoupper($sTitle), $sContents);
    }
    
    
/* private static */ function backtrace()
    {
        
$aBacktrace debug_backtrace();
        
$aReturn = array();
        for (
$i 1$iCount count($aBacktrace); $i $iCount$i++) {
            
$aReturn[] = sprintf('%s:%u'$aBacktrace[$i]['file'], $aBacktrace[$i]['line']);
        }
        if (
count($aReturn) == 0) {
            return 
'';
        }
        
        return 
Debug::output($aReturn"BACKTRACE"false);
    }
}

////////////////////////////////////////////////////////////////////////////////////////////////////
?>
Zusätzlich wird ausgegeben, über welche Skripte der Aufruf zustande kam.
Zergling-new ist offline  
Alt 13.12.2006, 08:32  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

*thx* Zergling.

Schaut nett aus. Muss ich doch gleich mal testen
M3g4Star ist offline  
Alt 13.12.2006, 16:49  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

kleines Update, damit die Klasse auch kompatibel zu Versionen älter als PHP 4.3.0 ist:

PHP-Code:
<?phpclass Debug
{
    
////////////////////////////////////////////////////////////////////////////////////////////////
    // public static functions
    
    /* public static */ 
function write()
    {
        
$aArgv func_get_args();
        for (
$i 0$k 1$iCount count($aArgv); $i $iCount$i++, $k++) {
            echo 
Debug::output($aArgv[$i], "ARG-$k");
        }
        echo 
Debug::backtrace();       
    }
    
    
/* public static */ function stop()
    {
        
$aArgv func_get_args();
        for (
$i 0$k 1$iCount count($aArgv); $i $iCount$i++, $k++) {
            echo 
Debug::output($aArgv[$i], "ARG-$k");
        }
        echo 
Debug::backtrace();
        echo 
Debug::output('script stopped''MESSAGE'false);
        exit;
    }
    
    
    
////////////////////////////////////////////////////////////////////////////////////////////////
    // private static functions
    
    /* private static */ 
function output($mVariable$sTitle ''$bShowType true)
    {
        if (
$bShowType || !Debug::isCompatible()) {
            
ob_start();
            
var_dump($mVariable);
            
$sContents ob_get_contents();
            
ob_end_clean();
        } else {
            
$sContents print_r($mVariabletrue);
        }
        return 
sprintf("<pre>DEBUG %s\n%s\n</pre>"strtoupper($sTitle), $sContents);
    }
    
    
/* private static */ function backtrace()
    {
        if (
Debug::isCompatible()) {
            
$aBacktrace debug_backtrace();
            
$aReturn = array();
            for (
$i 1$iCount count($aBacktrace); $i $iCount$i++) {
                
$aReturn[] = sprintf('%s:%u'$aBacktrace[$i]['file'], $aBacktrace[$i]['line']);
            }
            if (
count($aReturn) == 0) {
                return 
'';
            }
            
            return 
Debug::output($aReturn"BACKTRACE"false);
        }   
    }
    
    
/* private static */ function isCompatible()
    {
        return 
substr(PHP_VERSION03) >= 4.3;
    }
}
?>
debug_backtrace() und der 2. Parameter von print_r() sind leider erst ab 4.3.0 verfügbar.
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
Datei Upload und Dateiname ändern Soese PHP Tipps 2006 10 11.10.2006 10:55
Datei durchsuchen Wöllchen Beitragsarchiv 3 02.03.2006 22:23
[Erledigt] Mit PHP die aktuellen Zugriffe auf Datei feststellen inkl IP PHP-Fortgeschrittene 4 21.10.2005 20:58
Per Img-Link Dateiname an Php-File übergeben u Datei löschen PHP Tipps 2005-2 3 11.09.2005 18:59
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
Includete Datei nicht gleich ausgeben Madden PHP-Fortgeschrittene 1 12.05.2005 00:19
aus php datei eine pdf datei erzeugen lassen raffnix PHP-Fortgeschrittene 5 04.02.2005 15:08
Idee zum Speichern einer Datei PHP Tipps 2005 6 10.01.2005 22:36
Dateien lesen und schreiben [mehr als: r,a,w]? PHP Tipps 2004 4 24.10.2004 18:53
php und ftp PHP Tipps 2004 4 07.10.2004 09:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
xtc debug, php dateiname der aktuellen datei, php aktueller dateiname, php aktuelle datei, xtcommerce debug, php dateiname, php name der aktuellen datei, php dateiname aktuelle datei, xt commerce debugger, php aktueller dateinamen, php dateiname der aktuellen datei ausgeben, http://www.php.de/php-tipps-2006/43042-dateiname-der-aktuellen-datei.html, xt commerce debugging, xtc {debug}, php dateiname aktuellen datei, aktueller dateiname php, xt commerce debug, php dateinamen der aktuellen datei, php dateinamen aktuelle datei, xt:commerce debug

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.