- Home
- Categorie
- Coding e Sistemistica
- PHP
- include_once di un file con dentro SCRIPT_NAME o PHP_SELF
-
include_once di un file con dentro SCRIPT_NAME o PHP_SELF
Ciao a tutti,
vorrei conoscere a runtime il nome del file corrente, anche se questo è incluso in un altro file.Spiego meglio la mia necessita con questi 2 files:
file1.php
<?php
include_once ("file2.php");
?>file2.php
<?php
echo $_SERVER['SCRIPT_NAME'];
echo $_SERVER['PHP_SELF'];
?>Da browser apro localhost/file1.php
a video leggo il nome del file contenitore
/file1.php
/file1.phpvoglio invece che mi compaia il nome del file incluso
/file2.php
/file2.phpQuali variabili di $_SERVER dovrei leggere? Oppure devo leggere da qualche altra parte?
Grazie
-
Prova con javascript:
<script> document.write(location.pathname.substring(location.pathname.lastIndexOf('/')+1)); </script>
-
Ciao,
devi usare FILE
-
@meis said:
Prova con javascript:
<script> document.write(location.pathname.substring(location.pathname.lastIndexOf('/')+1)); </script>
No, parliamo di php grazie
@Thedarkita said:Ciao,
devi usare FILE
Ok va bene. La costante FILE mi da solo il nome file oppure path+nome?
-
Se non ricordo male, lo da completo. Se ti serve solo il nome del file puoi eventualmente usare la funzione explode.
-
@Thedarkita said:
Se non ricordo male, lo da completo. Se ti serve solo il nome del file puoi eventualmente usare la funzione explode.
confermo che la costante FILE restituisce anche il path fisico (non radicato nel server web ma nel file system e separato da \ su windows e / su *nix).
Nel mio caso FILE vale C:\wamp\www\file2.php
Devo quindi spezzare ad ogni \ e prendere l'ultimo elemento, tradotto in php faccio
[PHP]array_pop(explode(DIRECTORY_SEPARATOR,FILE ));[/PHP]
problema risolto grazie
-
torno sull'argomento per segnalare che su un altro server compare il messaggio
Strict Standards: Only variables should be passed by reference
(non compare sulla macchina dove sviluppo...quindi forse dipende dalla versione php)
comunque, il messaggio dipende da explode o da array_pop....avevo trovato alcuni workaround ma poi ho preferito cambiare tutto, così
[PHP]$path_parts = pathinfo(FILE);
$path_parts['basename'];[/PHP]