Notice: Ob_End_Flush(): Failed to Send Buffer of Zlib Output Compression (1) In

Notice: ob_end_flush(): failed to send buffer of zlib output compression (1) in

It solved when switched off zlib.output_compression in php.ini

zlib.output_compression = Off

What does this mean? Notice: ob_flush() [ref.outcontrol]: failed to flush buffer zlib output compression

You can't use gzip/zlib compression as well as flush.

Pick one or the other. I'd recommend gzip rather than flush.

How to dynamically create an image with a specified number on it?

Here's a an example how you could do it - use gd function calls to make your image, but play nice and cache the images. This sample plays even nicer by ensuring that if the browser already has the required image, it returns a 304...

#here's where we'll store the cached images
$cachedir=$_SERVER['DOCUMENT_ROOT'].'/imgcache/'

#get the score and sanitize it
$score=$_GET['score'];
if (preg_match('/^[0-9]\.[0-9]{1,2}$/', $score)
{
#figure out filename of cached file
$file=$cachedir.'score'.$score.'gif';

#regenerate cached image
if (!file_exists($file))
{
#generate image - this is lifted straight from the php
#manual, you'll need to work out how to make your
#image, but this will get you started

#load a background image
$im = imagecreatefrompng("images/button1.png");

#allocate color for the text
$orange = imagecolorallocate($im, 220, 210, 60);

#attempt to centralise the text
$px = (imagesx($im) - 7.5 * strlen($score)) / 2;
imagestring($im, 3, $px, 9, $score, $orange);

#save to cache
imagegif($im, $file);
imagedestroy($im);
}

#return image to browser, but return a 304 if they already have it
$mtime=filemtime($file);

$headers = apache_request_headers();
if (isset($headers['If-Modified-Since']) &&
(strtotime($headers['If-Modified-Since']) >= $mtime))
{
// Client's cache IS current, so we just respond '304 Not Modified'.
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $mtime).' GMT', true, 304);
exit;
}

header('Content-Type:image/gif');
header('Content-Length: '.filesize($file));
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $mtime).' GMT');
readfile($file);

}
else
{
header("HTTP/1.0 401 Invalid score requested");
}

If you put this in image.php, you would use as follows in an image tag

<img src="image.php?score=5.5" alt="5.5" />


Related Topics



Leave a reply



Submit