Podczas korzystania z PHP include
, w jaki sposób mogę się dowiedzieć, który plik nazywa się include
? W skrócie, jaka jest nazwa pliku nadrzędnego pliku?Uzyskaj nazwę pliku pliku, który działał PHP to
Odpowiedz
Łatwym sposobem jest przypisanie zmiennej w pliku nadrzędnym (przed skrętką), a następnie odesłanie tej zmiennej do dołączonego pliku.
nadrzędna pliku:
$myvar_not_replicated = __FILE__; // Make sure nothing else is going to overwrite
include 'other_file.php';
wliczony Plik:
if (isset($myvar_not_replicated)) echo "{$myvar_not_replicated} included me";
else echo "Unknown file included me";
Można też poeksperymentować z get_included_files()
lub debug_backtrace()
i znaleźć zdarzenie, kiedy i gdzie plik dostał wliczone w cenę, ale to może stać się trochę kłopotliwe i skomplikowane.
$fileList = get_included_files();
$topMost = $fileList[0];
if ($topMost == __FILE__) echo 'no parents';
else echo "parent is $topMost";
Myślę, że powinno to dać właściwy wynik, gdy istnieje jeden rodzic.
Mam tu na myśli sytuację, w której rodzic nie jest wymagany lub dołączony do niego plik.
Późne odpowiedź, ale ...
sprawdzić biegu rodzic nazwa pliku za pomocą:
$_SERVER["SCRIPT_NAME"] // or
$_SERVER["REQUEST_URI"] // (with query string)
To powinno być bardziej wysoko ocenione, ponieważ daje poprawną odpowiedź bez potrzeby edytowania plików kontenera dla załącznika. Mam dodatek, który wymagał nazwy pliku kontenera i to na pewno pobudza zmianę wartości '$ var' na ponad 100 innych stronach, jak sugerują inne odpowiedzi. – Martin
** WYSOCE NIEPRAWIDŁOWA ODPOWIEDŹ **! "SCRIPT_NAME" zwraca pierwszy plik. i "REQUEST_URI" jest wykluczone! nie pomogą w każdym CMS. Użyj 'debug_backtrace()' lub 'get_included_files()' –
@ T.Todua te kwalifikatory są ważne, ale są poza zakresem tego pytania (i odpowiedzi). '$ _SERVER ['SCRIPT_NAME']' to wartość wymagana tutaj. – Martin
W pliku nadrzędnego, dodać tę linię przed tym plik dziecko:
$_SESSION['parent_file'] = $_SERVER['PHP_SELF'];
A następnie w pliku potomnym, przeczytaj zmienną sesji:
$parent_file = $_SESSION['parent_file']
- 1. Uzyskaj nazwę pliku z pliku wejściowego Angular2
- 2. Uzyskaj nazwę pliku od FileOutputStream
- 3. Uzyskaj folder macierzysty bieżącego pliku PHP
- 4. Uzyskaj nazwę pliku z lokalizacji pliku w języku Java
- 5. Uzyskaj nazwę folderu pliku w języku Python
- 6. AJAX/Jquery - Uzyskaj odpowiedź z pliku php
- 7. Ustaw PHP pathinfo() zwracając poprawną nazwę pliku, jeśli nazwa pliku to UTF-8
- 8. Uzyskaj nazwę hosta bieżącego żądania w pliku node.js Express
- 9. Uzyskaj ścieżkę i nazwę pliku z wyniku zamiaru kamery
- 10. Regex: Uzyskaj nazwę pliku bez rozszerzenia w jednym ujęciu?
- 11. Uzyskaj nazwę pliku z adresu URL za pomocą Lua
- 12. Uzyskaj nazwę serwera z ciągu połączenia zdefiniowanego w pliku App.config?
- 13. Uzyskaj nazwę pliku ze ścieżki w skrypcie Bash
- 14. Uzyskaj nazwę przycisku przesyłania w PHP
- 15. Uzyskaj nazwę programu Java
- 16. Pobierz nazwę pliku ze wskaźnika pliku
- 17. zwraca nazwę pliku
- 18. Uzyskaj lokalizację pliku JAR
- 19. Zmiana nazwy pliku PHP
- 20. jak daemonizować skrypt php, który będzie działał z dodatkiem
- 21. Uzyskaj nazwę użytkownika z URL w PHP
- 22. Jak uzyskać nazwę otwartego pliku?
- 23. Węzeł/Multer Pobierz nazwę pliku
- 24. Codeigniter - pobierz nazwę przesłanego pliku
- 25. Powershell Uzyskaj folder nadrzędny pliku
- 26. Uzyskaj odpowiedź z pliku PHP za pomocą AJAX
- 27. Drukowanie pliku wyjściowego skryptu php do pliku
- 28. PHP urlencode - kodować tylko nazwę pliku i nie dotykać ukośniki
- 29. PHP $ _FILES ['plik'] ['tmp_name']: Jak zachować nazwę pliku i rozszerzenie?
- 30. Jak zwiększyć nazwę pliku w php, aby zapobiec duplikatom?
Lepsze pytanie brzmi: dlaczego musisz to wiedzieć? Być może istnieje lepszy sposób wyraźnego robienia tego, co próbujesz osiągnąć. – Zimzat