If you set_error_handler, then you get automatically line number and
filename.
Read through: http://www.php.net/manual/en/function.set-error-handler.php
(read user comments! there are undocumented things)
Then set up your handler like this:

$_old_error_handler = set_error_handler("myErrorHandler");
function somefunction(){
    #do some stuff
    trigger_error("Something went wrong, don't know why, sorry",
E_USER_ERROR);
}

function myErrorHandler($level, $message, $file, $line, $context){ #$context
contains _ALL_ variabels in scope when error happened
    echo "D'oh, an error has occurred: $message.\n";
    echo "It happened in file $file at line $line and it is a $level-error";
}

the most beauty about that is that you can also cover errors you didn't
handle (e.g. if fopen triggers a warning or whatever)

best regards
stefan rusterholz

----- Original Message -----
From: "Lars Torben Wilson" <[EMAIL PROTECTED]>
To: "Christian Novak" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Wednesday, January 30, 2002 12:45 PM
Subject: Re: [PHP] Function call stack


> On Wed, 2002-01-30 at 03:33, Christian Novak wrote:
> > Has anyone an idea on how to get information from PHP on the function
call
> > stack.
> > I need the line number and file calling a function for a custom error
> > handler.
>
> This cannot be done in current versions of PHP. There are
> feature requests in the bug database about this, though.
>
>
> Torben
>
> > To be more clear, here is what I would like to do:
> >
> > - I have a library, included in the main program
> > - I have an error handler in the library
> >
> > // main.php
> > require "library.php";
> > $x = myfunc('A');
> >
> >
> > // library.php
> > function myfunc($i)
> > {
> > if (!is_int($i)) {
> >    $file = ????              // how can I get the file name of the file
> > calling myfunc()
> >    $line = ????             // how can I get the line number of the file
> > calling myfunc()
> >    trigger_error("Error in  $file, at line $line, paramter must be an
> > integer!", E_USER_ERROR);
> > return($i);
> >
> > Using the pre_defined varibales __line__ and __file__ will always point
me
> > to the function not the calling
> > script.
> >
> > Best regards
> >
> > Christian Novak
> >
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> >
> >
> --
>  Torben Wilson <[EMAIL PROTECTED]>
>  http://www.thebuttlesschaps.com
>  http://www.hybrid17.com
>  http://www.inflatableeye.com
>  +1.604.709.0506
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>
>
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to