|
|
|
|
| |
"Real" counters must be called by image tags and require the GD 1.3 library. As with our last counter, we must start off with much of the same script. |
|
<?
$path = '/home/www/counter/images/';
$ending = '.GIF';
$default_style = 'GOLD';
$style = ($style)?$style:$default_style;
$size = GetImageSize($path.'1'.$style.$ending);
?>
|
|
|
Because we'll be using the length of the variable $count more then once, we might as well set it as a variable. We also have to get the height and width of the image we'll be using. |
|
<?
$path = '/home/www/counter/images/';
$ending = '.GIF';
$default_style = 'GOLD';
$style = ($style)?$style:$default_style;
$size = GetImageSize($path. '1'.$style.$ending);
$length_count = strlen($count);
$width = $size[0];
$height = $size[1];
?>
|
|
|
|
Now that all the variables are set, it's time to begin creating the image. We are creating an image that has the width of one of our digits multiplied by $length_count. The height remains as $height (the length of $count will never change the height of the image). |
|
<?
$path = '/home/www/counter/images/';
$ending = '.GIF';
$default_style = 'GOLD';
$style = ($style)?$style:$default_style;
$size = GetImageSize($path. '1'.$style.$ending);
$length_count = strlen($count);
$width = $size[0];
$height = $size[1];
$im = imagecreate($width * $length_count, $height);
?>
|
|
|
Now the hard part begins. As with our last script, this one must loop through every digit in $count, outputting its corresponding every time. First, we need the loop. |
|
<?
$path = '/home/www/counter/images/';
$ending = '.GIF';
$default_style = 'GOLD';
$style = ($style)?$style:$default_style;
$size = GetImageSize($path. '1'.$style.$ending);
$length_count = strlen($count);
$width = $size[0];
$height = $size[1];
$im = imagecreate($width * $length_count, $height);
for ($i = 0; $i < $length_count; $i++) {
}
?>
|
|
|
We must declare each digit that we're using. The easiest way to do this is to put them all into the array $im_input[]. So if the number we wanted to print out was "100", we would need one $im_input[1] and two $im_input[0]. But since we're using the same digit, it seems rather pointless to declare the same digit twice. To stop this from happening, we can simply put an if() clause in our script. It simply says , "If the variable $im_input[current_digit] doesn't exist, then create it using the $path, $style, and $ending values that we've already set." |
|
<?
$path = '/home/www/counter/images/';
$ending = '.GIF';
$default_style = 'GOLD';
$style = ($style)?$style:$default_style;
$size = GetImageSize($path. '1'.$style.$ending);
$length_count = strlen($count);
$width = $size[0];
$height = $size[1];
$im = imagecreate($width * $length_count, $height);
for ($i = 0; $i < $length_count; $i++) {
if(!$im_input[$count[$i]]){
$im_input[$count[$i]] = imagecreatefromgif($path.$count[$i].$style.$ending);
}
}
?>
|
|
|
Now we just have to add that digit image to the image that we're building. We do this using the undocumented ImageCopy() function. |
|
<?
$path = '/home/www/counter/images/';
$ending = '.GIF';
$default_style = 'GOLD';
$style = ($style)?$style:$default_style;
$size = GetImageSize($path. '1'.$style.$ending);
$length_count = strlen($count);
$width = $size[0];
$height = $size[1];
$im = imagecreate($width * $length_count, $height);
for ($i = 0; $i < $length_count; $i++) {
if(!$im_input[$count[$i]]){
$im_input[$count[$i]] = imagecreatefromgif($path.$count[$i].$style.$ending);
}
imagecopy($im, $im_input[$count[$i]], $i*$width, 0, 0, 0, $width, $height);
}
?>
|
|
|
Now all we have to do is to output the image. Because this isn't an HTML page, the proper headers must be sent. Also, to clear up memory, it's a good idea to delete the image after it's outputted. |
|
<?
$path = '/home/www/counter/images/';
$ending = '.GIF';
$default_style = 'GOLD';
$style = ($style)?$style:$default_style;
$size = GetImageSize($path. '1'.$style.$ending);
$length_count = strlen($count);
$width = $size[0];
$height = $size[1];
$im = imagecreate($width * $length_count, $height);
for ($i = 0; $i < $length_count; $i++) {
if(!$im_input[$count[$i]]){
$im_input[$count[$i]] = imagecreatefromgif($path.$count[$i].$style.$ending);
}
imagecopy($im, $im_input[$count[$i]], $i*$width, 0, 0, 0, $width, $height);
}
Header( "Content-type: image/gif");
ImageGif($im);
ImageDestroy($im);
?>
|
|
|
You're done. |
|
| |
| Counting - Creating a GIF based counter using PHP and MySQL Categories : Beginner Guides, PHP, To PHP, To MySQL, MySQL | | | Beginners guide to PHP and MySQL - Creating a simple guest book Categories : Beginner Guides, To PHP, To MySQL, PHP, MySQL | | | Counting - Creating a simple counter Categories : PHP, MySQL, Beginner Guides, To PHP, To MySQL | | | Jump Start to Easy URLs Categories : PHP, Beginner Guides, MySQL, File System, To PHP | | | Who's Linking? Categories : PHP, Beginner Guides, To PHP | | | Grabb'n and Pars'n Categories : Beginner Guides, PHP, To PHP | | | Start Using MySQL Categories : MySQL, Databases, To MySQL, Beginner Guides | | | How To add paging (Pagination) with PHP and MySQL Categories : PHP, Beginner Guides, Databases, MySQL, HTML and PHP | | | Beginners Guide to PHP - Introduction to cookies Categories : Beginner Guides, Cookies, To PHP, PHP | | | How TO Install PHP, Apache and MySQL on Linux or Unix Categories : PHP, MySQL, Apache, Installation, Beginner Guides | | | Beginners guide to PHP and MySQL Categories : PHP, Beginner Guides, Databases, MySQL, Installation | | | Creating an IE-Only Database Driven Menu System With PHP, MySQL and DHTML Categories : PHP, MySQL, Databases, DHTML | | | PHP 101 Part 10 of 15 : A Session In The Cookie Jar Categories : PHP, Beginner Guides, Cookies, Sessions | | | Case Study: Handling MySQL Growth With a PHP Class Categories : Databases, MySQL, PHP | | | PHP, MySQL and Authentication 101 Categories : PHP, Databases, MySQL, Authentication | |
| | |
|
|