Autor | Zpráva | ||
---|---|---|---|
Big_G Profil * |
#1 · Zasláno: 28. 6. 2010, 15:07:04
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 * |
#2 · Zasláno: 28. 6. 2010, 15:09:56
Samozřejmě na pátém řádku kódu má být pouze databaze(); místo databaze.php();
|
||
Mastodont Profil |
#3 · Zasláno: 28. 6. 2010, 15:30:54
Podívej se na
http://pl.php.net/manual/en/function.debug-backtrace.php |
||
Big_G Profil |
#4 · Zasláno: 28. 6. 2010, 15:53:41
Super.To je přesně ono. A já to hledal na php.net půl dne. :-D
Díky. |
||
Časová prodleva: 14 let
|
0