Re: Register_Shutdown_Function ??

From: Date: Sun, 19 May 2002 03:59:02 +0000
Subject: Re: Register_Shutdown_Function ??
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-98321@lists.php.net to get a copy of this message
It doesn't matter. I'm setting the output *not* to the browser, but to the command shell, where I am running the script from. If you look at the errors, you'll see 2 of them, one points to line 7, where the IF() command is -- the script terminates there... I've put error_log() and exec() functions in place of the print() function -- it doesn't make a difference -- the script just won't execute the function in the register_shutdown_function() -- The following script works great (see below) -- it seems that for some reason its a TIMEOUT issue (bug). Running the script below, I will get the output of the print() function -- as stated, from the command line. I understand that it wouldn't show up in the browser. If I replace the "exit;" command with say a "while(1);" where the script will loop indefinitely, the timeout, set by the set_time_limit(1) will stop the script, but again -- register_shutdown_function() seems to "want to work" as the function IS CALLED, but NEVER executed, and instead errors on the 1st line in the FUNCTION -- always on a TIMEOUT. Run this script from your command line (ie. C:>php test.php) -- then change the "set_time_limit(30)" to "set_time_limit(1)", and replace the "exit" with a "while(1)" -- run the script again, you'll see what I mean. And, if you still don't believe me, replace the print() in the function with "error_log('Script Terminated', 3, 'errorlog.txt');" and see if the "errorlog.txt" file is ever created -- it isn't. <? set_time_limit(30); function clean_up() { print("Script Terminated"); } register_shutdown_function("clean_up"); exit; ?> If anyone can offer any reason why its doing this, please help -- thanks. Jason "Cc Zona" <email@cczona.com> wrote in message news:email-95A23B.19072218052002@pb1.pair.com... > In article <20020519005201.26095.qmail@pb1.pair.com>, > jason@thinkingman.org (Jason Caldwell) wrote: > > > Here's my code: > > ---------------- > > <? > > set_time_limit(1); > > function clean_up() > > { > > if(connection_status() & TIMEOUT) > > print("Script timed out.\n"); > > } > > register_shutdown_function("clean_up"); > > while(1); > > ?> > > > > Here's the message I get: (I should get "Script timed out.") > > No, you shouldn't/wouldn't, because--as is noted in the docs > <http://php.net/register-shutdown-function>--no more > output ("print" is > specifically mentioned as an example) can be sent to the browser at that > stage. Try sending youself an email, or logging to a file instead. > > -- > CC

« previous php.general (#98321) next »