Überprüfen Sie, ob eine Datei enthalten oder geladen wurde
Gibt es irgendeinen eleganten Weg, um zu überprüfen, ob eine Datei enthalten war, die durch die Verwendung include
/include_once
/require
/require_once
oder wenn die Seite war eigentlich direkt geladen? Ich versuche zum einrichten einer Test-Datei in class-Dateien, während ich bin, Sie zu erstellen.
Ich bin auf der Suche nach etwas ähnliches für Python if __name__ == "__main__":
Technik. Ohne Einstellung globals oder Konstanten.
InformationsquelleAutor der Frage qwertymk | 2012-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie dies tun, indem Sie get_included_files — Gibt ein array mit den Namen enthalten oder die gewünschten Dateien und validieren gegen
__FILE__
InformationsquelleAutor der Antwort NullPoiиteя
Ich Schätze all die Antworten, aber ich wollte nicht mit einer Lösung hier, also habe ich kombiniert Ihre Ideen und bekam dies:
InformationsquelleAutor der Antwort qwertymk
Zitiert aus: Wie Sie wissen, wenn php-Skript wird aufgerufen, die über require_once()?
Credit: @Interwebs Cowboy
InformationsquelleAutor der Antwort Joshua Kaiser
Hinweis: Auf WAMP Server virtualhosts manchmal Erben die Standard-Dokument-root-Einstellung, wodurch $_SERVER['DOCUMENT_ROOT'], um die Anzeige falsche Weg.
InformationsquelleAutor der Antwort tim
Sie keine Möglichkeit, Sie zu trennen, als
include/include_once/require/require_once
aber php hatget_included_files
undget_required_files
das die gleiche Sache und gibt nur array mit allen enthaltenen Dateien. Seine nicht zu trennen, wenn esrequired
oderincluded
.Beispiel
a.php
Ausgabe
Aber Sie können etwas tun, wie
Klasse Verwendet
InformationsquelleAutor der Antwort Baba
Genommen von mgutt Antwort auf eine etwas andere Frage hier. Es ist wichtig zu beachten, das funktioniert nicht, wenn das Skript von der Kommandozeile aus ausgeführt, aber anders als das es funktioniert genau wie python -
soweit ich sagen kann,
InformationsquelleAutor der Antwort Josh R
Ich glaube nicht, dass
get_included_files
ist die perfekte Lösung, was ist, wenn dein Haupt-Skript enthalten einige andere scripts vor der Prüfung? Mein Vorschlag ist zu überprüfen, ob__FILE__
gleichrealpath($argv[1])
:InformationsquelleAutor der Antwort adamsmith
Ich nahm einen ähnlichen Ansatz, um dieses Problem auf, wenn ich die cam über ihn. Die Lösung, die ich fand, war das laden jeder Datei bei Bedarf in ein include_once Methode. Hoffe, das hilft.
Habe ich die folgende Funktion eingerichtet, um zu überprüfen Dateien geladen:
Ausgabe:
InformationsquelleAutor der Antwort Hardeen
InformationsquelleAutor der Antwort ngmh
Es ist sooo einfach..
Ich habe so etwas wie dieses:
Und das ist es.. so einfach wie in python.
InformationsquelleAutor der Antwort stasinek