Autor Zpráva
Big_G
Profil *
Zdravím. Mám následující problém.
Nejlépe ukážu na příkladu:
Soubor mypage.php:

<?php
include('func.php');
include('inc.php');
include('inc2.php');
databaze.php();
?>

Soubor inc.php a inc2.php:

<?php
databaze();
?>

soubor func.php

<?php
function databaze()
{
.
.
.
}
?>


A teď k problému:
Potřebuji ve funkci zjistit, ze kteréhjo souboru (nikoliv adresy) byla funkce volána.
Samozřejmě proměnné _SERVER vrací vždy mypage.php
Já ale potřebuji zjistit, zda to vylo voláno z vloženého souboru inc.php, inc2.php nebo přímo z mypage.php stejně, jako vrací informaci přímo parser v chybových hlášeních.
Ty soubory jsou vždy vložené a nelze je volat přímo.
Upozorňuji, že toto je pouze příklad. Souborů je příliš mnoho a navíc jsou volání na několika místech v nich. Takže nelze napřiklad do volání přidat další parametr pro identifikaci.

Abych osvětlil důvod: MySQl server hlásí chyby, ale jeho zpětná reference je na onu funkci. Pokud bych zjistil, ze kterého souboru byla funkce volána, lehce bych chybu identifikoval (například proč se posílají prázdné paramtery) a ošetřil.
Tyto chyby sice nejsou kritické a jejich hlášení je potlačeno zavináčem, ale jejich vznik je pro účely ladění logován a díky tomu se log pěkně plní zbytečnými hlášeními.

Předem děkuji za odpověď.
Big_G
Profil *
Samozřejmě na pátém řádku kódu má být pouze databaze(); místo databaze.php();
Mastodont
Profil
Podívej se na
http://pl.php.net/manual/en/function.debug-backtrace.php
Big_G
Profil
Super.To je přesně ono. A já to hledal na php.net půl dne. :-D
Díky.

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