Re: [PHP4BETA] virtual() and buffered output
| From: | Rasmus Lerdorf | Date: | Mon, 05 Jun 2000 21:20:59 +0000 |
| Subject: | Re: [PHP4BETA] virtual() and buffered output | ||
| References: | 1 | Groups: | php.version4 |
| Request: | Send a blank email to php-version4+get-16164@lists.php.net to get a copy of this message | ||
Makes sense. Thanks for the patch.
On Mon, 5 Jun 2000, Marc Pohl wrote:
>
> hi,
>
> i have a small patch against sapi/apache/php_apache.c (PHP4.0.0) to allow the usage of
> virtual() while in buffered-output-mode. the problem is, that the output of virtual() appears before
> any http-headers or regular output prior to the call of virtual(), because virtual() doesn't
> use the buffered-output-layer.
>
> the solution is to call php_end_ob_buffering(1) before virtual(). this also turns off the
> output-buffering for the remaining parts of the skript, but this should cause no real problems.
> after this we need an extra call of php_header() to ensure that the http-headers were really sent
> before calling run_sub_req().
>
> this patch also closes error #2546 "virtual() causes HTTP headers problems".
>
> regards
> marc
>
>
>
> diff -ur php-4.0.0-orig/sapi/apache/php_apache.c php-4.0.0/sapi/apache/php_apache.c
> --- php-4.0.0-orig/sapi/apache/php_apache.c Thu May 18 17:34:40 2000
> +++ php-4.0.0/sapi/apache/php_apache.c Mon Jun 5 08:21:30 2000
> @@ -320,6 +320,9 @@
> RETURN_FALSE;
> }
>
> + php_end_ob_buffering(1);
> + php_header();
> +
> if (run_sub_req(rr)) {
> php_error(E_WARNING, "Unable to include '%s' - request execution
> failed", (*filename)->value.str.val);
> if (rr) destroy_sub_req (rr);
>
>
>
> ------------------------------------------------------------
>
> Marc Pohl
> Westdeutscher Rundfunk
> Tel.: +49 221 220 8618 Service-Center-Infrastruktur
> FAX: +49 221 220 3882 D-50600 Koeln
> Email: marc.pohl@wdr.de
>
>
>
>