2016-04-22 2 views
1

Ich bin kein PHP-Programmierer, aber ich brauche den aktuellen Dateinamen und den übergeordneten Ordner-Namen zu erhalten, wenn ein Skript enthalten (require_once(myscript))php get foldername und Dateiname der aktuellen Datei aber von externen Skript?

Ich weiß, dass basename(__DIR__) und basename(__FILE__) geben Sie mir die Informationen, ABER! aus dem laufenden Skript, das wiederum ein anderes Ergebnis zB zurückgibt:

Betrachten Sie die folgende Ordnerstruktur: in util.php

public static function echoParentAndFileNames(){ 
     echo basename(__DIR__) . "<br />"; 
     echo basename(__FILE__) . "<br />"; 
    } 

/index.php 
/other.php 
/dir/util.php 

wenn ich die Funktion unten haben

Und ich führe den Code unter index.php

require_once("dir/util.php"); 

Util::echoParentAndFileNames(); 

Der Ausgang wird sein: dir und util.php und ich möchte index.php und ihre Mutterordnernamen ...

So wie kann ich dieses Skript aus einer mitgelieferten Datei aufrufen und es zeigen haben mir die benötigten Infos?

Antwort

3

Um auf das aktuell ausgeführte Skript zu verweisen, können Sie $_SERVER['SCRIPT_FILENAME'] verwenden.

public static function echoParentAndFileNames(){ 
    echo basename(dirname($_SERVER['SCRIPT_FILENAME'])) . "<br />"; 
    echo basename($_SERVER['SCRIPT_FILENAME']) . "<br />"; 
} 

Von PHP Docs:


'SCRIPT_FILENAME' Der absolute Pfadname des aktuell ausgeführten Skripts

So können Sie Ihre Funktion ändern.

Hinweis:
Wenn ein Skript mit der CLI, als relativer Pfad, wie file.php oder ../file.php ausgeführt wird, wird $ _SERVER [ ‚SCRIPT_FILENAME‘] den relativen Pfad durch die angegebene enthalten Benutzer.

Verwandte Themen