ID:               11491
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Closed
 Bug Type:         Documentation problem
 Operating System: Windows 2000 Server
 PHP Version:      4.0.5
 New Comment:

Please reopen - the very same bug is still alive in PHP 4.1.1
(Win32/Apache).

Problem: Any user-defined output handler MUST be called before
trans-sid's are applied since they may very well modify the HTML
output.

Suggestion: add another (opt) parameter to ob_start, specifying a
first-pass handler which will be called _before_ trans-sid's are
applied. The original first parameter specifies the handler that will
be called _after_ applying the trans-sid's.

BEFORE CHANGE (trans-sid's are broken):
string ob_start('my_handler');
function my_handler($buffer, $mode)
{
  // do something useful with $buffer
  return ob_gzhandler($buffer, $mode);
}

AFTER CHANGE (trans-sid's should work):
string ob_start('ob_gzhandler','my_handler');
function my_handler($buffer, $mode)
{
  // do something useful with $buffer
  return $buffer;
}

The PHP engine would first call my_handler(), apply trans-sid's next,
and finally call ob_gzhandler(). This solution seems to be a reasonable
change and shouldn't break existing code.

Thanks for consideration!

Ernest E Vogelsinger


Previous Comments:
------------------------------------------------------------------------

[2001-12-22 08:40:31] [EMAIL PROTECTED]

No feedback. Closing.

------------------------------------------------------------------------

[2001-12-22 08:40:26] [EMAIL PROTECTED]

No feedback. Closing.

------------------------------------------------------------------------

[2001-12-01 12:15:00] [EMAIL PROTECTED]

This should be fixed, please try a recent version of PHP.

------------------------------------------------------------------------

[2001-06-21 14:24:22] [EMAIL PROTECTED]

This should be mentioned in the manual?
Reclassified as docu prob.


------------------------------------------------------------------------

[2001-06-20 17:05:01] [EMAIL PROTECTED]

output buffering takes place before the transient sid
mechanism, which is the last thing to happen before
the actual script output is passed on to the webserver

so the trans-sid parser will not recognize the URLs 
in the already compressed output, thats it



------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/11491

-- 
Edit this bug report at http://bugs.php.net/?id=11491&edit=1

Reply via email to