Quando si utilizza il codice PHP include
, come posso sapere quale file sta chiamando il numero include
? In breve, qual è il nome file del file principale?Ottieni nome file del file che ha eseguito PHP include
risposta
Un modo semplice è assegnare una variabile nel file principale (prima dell'inclusione), quindi fare riferimento a tale variabile nel file incluso.
Parent File:
$myvar_not_replicated = __FILE__; // Make sure nothing else is going to overwrite
include 'other_file.php';
Incluso File:
if (isset($myvar_not_replicated)) echo "{$myvar_not_replicated} included me";
else echo "Unknown file included me";
Si potrebbe anche pasticciare con get_included_files()
o debug_backtrace()
e trovare l'evento quando e dove ha ottenuto il file incluso, ma può diventare un po 'complicato e complicato.
$fileList = get_included_files();
$topMost = $fileList[0];
if ($topMost == __FILE__) echo 'no parents';
else echo "parent is $topMost";
Penso che questo dovrebbe dare il risultato giusto quando c'è un genitore single.
Con ciò intendo la situazione in cui il genitore non è un file obbligatorio o incluso.
risposta tardi, ma ...
ho verificare il nome del file in esecuzione padre utilizzando:
$_SERVER["SCRIPT_NAME"] // or
$_SERVER["REQUEST_URI"] // (with query string)
Questo dovrebbe essere più votato in quanto fornisce la risposta corretta senza la necessità di modificare i file contenitore per un inclusivo. Ho una inclusione che aveva bisogno del nome del suo file contenitore e questo sicuro battendo i valori di '$ var' su 100+ altre pagine come suggeriscono le altre risposte. – Martin
** RISPOSTA ALTAMENTE ERRATA **! 'SCRIPT_NAME' restituisce il primo file. e 'REQUEST_URI' è fuori discussione! non aiuteranno in alcun CMS. Usa 'debug_backtrace()' o 'get_included_files()' –
@ T.Todua questi qualificatori sono validi ma sono ben al di fuori dello scopo di questa domanda (e risposta). '$ _SERVER ['SCRIPT_NAME']' è il valore necessario qui. – Martin
Nel file principale, aggiungere questa riga prima di includere il file secondario:
$_SESSION['parent_file'] = $_SERVER['PHP_SELF'];
E poi nel file figlio, leggere la variabile di sessione:
$parent_file = $_SESSION['parent_file']
- 1. Ottieni percorso completo senza nome file dal percorso che include il nome file
- 2. Ottieni nome file dal puntatore del file
- 3. include file php esterni
- 4. Include il file PHP nel file HTML
- 5. Ottieni cartella principale del file corrente PHP
- 6. Codeigniter: ottieni il nome del file caricato
- 7. Ottieni il nome file dopo che il filereader ha caricato in modo asincrono un file
- 8. Ottieni il nome del file da FileOutputStream
- 9. Nome file PHP
- 10. PHP include le migliori pratiche sull'estensione file
- 11. Node/Multer Ottieni nome file
- 12. Ottieni nome file usando xsl
- 13. include un file .tex con spazi nel nome file
- 14. Ricerca del nome file che ha chiamato la mia funzione in PHP
- 15. PHP, ottenere il nome del file senza estensione di file
- 16. Ottieni nome file senza Content-Disposition
- 17. Ottieni il nome del carattere del file .ttf
- 18. Ottieni nome file corrente in JSP
- 19. Ottieni il nome file suggerito da org.apache.http.HttpResponse
- 20. PHP include(): Dimensione file e prestazioni
- 21. Include: css con estensione di file php?
- 22. Ottieni il nome del file in esecuzione in Java?
- 23. Come creare un file JAR che include file DLL?
- 24. Ottieni la posizione del file JAR
- 25. Flex: ottieni il nome del file SWF automatico?
- 26. Ottieni il nome del file dalla stringa URI in C#
- 27. Ottieni il nome del file dall'URL utilizzando Lua
- 28. AJAX/Jquery - Ottieni risposta dal file php
- 29. Ottieni il contenuto del file tramite PHP cURL
- 30. Ottieni nome file da percorso stringa?
Una domanda migliore è perché hai bisogno di sapere questo? Forse c'è un modo migliore di fare esplicitamente ciò che stai cercando di realizzare. – Zimzat