Gibi bir şey söyleyerek bir yer tutucu bir görüntü var:
Your rating is:
[rating here]
Benim PHP kod dinamik tutucu görüntüsünde bunun için sol bir boşluk var oylaması numarası eklemek gerekiyordu. Bunu nasıl yapabilirim?
İşte bunu nasıl bir bir örnek - gd function görüntü yapmak için çağırır kullanmak, ama güzel oyun ve görüntüleri önbelleğe. Bu örnek çalış even nicer tarayıcı zaten gerekli görüntü varsa, bu 304 döndüren sağlayarak ...
#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");
}
Eğer Image.php bu koyarsanız, aşağıdaki gibi bir görüntü etiketi kullanmak istiyorsunuz
<img src="image.php?score=5.5" alt="5.5" />
Ben bir soru olduğunu biliyorum "dinamik üzerinde belirli bir sayı ile bir görüntü oluşturmak için nasıl?" ama ben bunun yerine altta yatan sorunu çözmek gerekir. Dinamik görüntü manipülasyon CPU üzerinde ağır. Sadece bunu yapmayın. Ve kesinlikle bir web isteği bağlamında bunu yapmayın. Yerine ve sonra derece bağlı olarak doğru olanı göstermek statik görüntüler sahip düşünün. Lütfen derecelendirme sistemi tüm yol 100'e gider bile, tekrar tekrar aynı görüntüyü yeniden çizilmesi tutmak için 100'den statik görüntüleri için daha iyi olurdu.