Autor Zpráva
gully
Profil
Zdravím,

chtěl bych poprosit o radu, jak bych mohl zjistit jméno (php) souboru stránky, která je aktuálně načítaná?
Dělám vlstní lokalizátor stránek a v rámci něj používám pro zjištění jména $_SERVER["SCRIPT_NAME"]. Když ho ale includuji do stránky, která je sama include (např. footer.php), tak dostanu jméno souboru té hlavní stránky.
Ugo
Profil
snad nelžu pole $_SERVER (volanej soubor serverem), konstanta __FILE__ (aktuální soubor) konstanta __DIR__ (php 5.3+ - abs. cesta k __FILE__)
Joker
Profil
gully:
Buď konstanta __FILE__, nebo $_SERVER["PHP_SELF"]

Nejjednodušší způsob, jak zjistit takovéhle „serverové“ informace je udělat si var_dump($_SERVER) a pak si z toho vybrat.
gully
Profil
Trochu jsem rozšířil svoji otázku, omlouvám se, nechtíc jsem ji odeslal dřív. Místo náhledu, jsem ji poslal ...
Joker
Profil
gully:
Trochu jsem rošířil svoji otázku
Když ho ale includuji do stránky, která je sama include (např. footer.php), tak dostanu jméno souboru té hlavní stránky.
Tak pak by to co píšeme mělo být ono.
V manuálu se u __FILE__ píše: If used inside an include, the name of the included file is returned., takže by to mělo vrátit název toho vloženého souboru a ne hlavního.
gully
Profil
Aha, tak k tomu problému zřejmě přistupuju špatně, protože když tam dám __FILE__, vrátí se mi vždy název toho souboru (lokalizator.php), ve kterém jsem tuto konstantu použil a já bych potřeboval, aby se vrátilo jméno souboru, do kterého byl lokalizator.php includovan, pokud je teda vůbec možné to takto zjišťovat.
Tori
Profil
Podívejte se, co vrací debug_backtrace, z toho se dá vyfiltrovat název souboru, kam je tento includován.
gully
Profil
Nakonec jsem použil get_included_files, na kterou jsem narazil právě díky debug_backtrace, na kterou jste mě navedl.

Díky moc!
gully
Profil
Lokalizátor funguje dobře, jen (vlastní) stránka 404 se nepřekládá. Důvod je mi jasný, řešení ale už ne. Poradíte někdo, jak na stránku 404?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0