Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Графичен брояч за сайт с PHP и GD
  1. Графичен брояч за сайт
Mutatos
     
Автор  Mutatos (08.05.2004 23:27)  съобщение до автора
Погледнат  3483 пъти  добави към любими
Оценка  добави коментар
Гласове  4  изпрати на приятел
Коментари  (0)  абонирай се за PHP
    Страница 1 / 1

 



Зд да се реализира графичен брояч за сайт на PHP с GD е нужно да е инсталирана графичната библиотека GD и 10 графики с числата от 0-9.

Като начало трябва да се инициализират няколко променливи за да функционира скрипта:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
$count=1;                   // начало на брояча
$ip=getenv( "REMOTE_ADDR") // IP адрес на потребителя
$counterfile= "counter.txt"; // текстов файл
$anzahl = 5;                // позиции на брояча
$reloadsperre = FALSE;      // блокиране
$error_img"fehler.png" // графика за грешка
?>

<?

function error_image()
{
 
global $error_img;
 
$size = GetImageSize($error_img);
 
$src_img = ImageCreateFromPNG($error_img);
 
$c_img = ImageCreate($size[0], $size[1]);
 
ImageCopy($c_img,$src_img, 0, 0, 0, 0, $size[0], $size[1]);
 
imagedestroy($src_img);
 
Header( "Content-type: image/png");
 
ImagePNG($c_img);           
 
imagedestroy($c_img);
 
exit;
}
?>


Тази функция се извиква в случай, че се предизвика грешка от скрипта. За тази цел трябва да предоставите една графика в PNG формат.


В следващата стъпка запаметяваме резултатите от брояча в текстови файл.

CODE
1
2
3
4
5
6
7
8
9
10
11
<?
if (!file_exists($counterfile))
{
 
if ($datei=fopen($counterfile, "w"))
  {
   
fputs($datei, "$count:$ip");
   
fclose($datei);
 
} else {
   
error_image();
 
}
?>


Прочитането на резултатите от брояча става по следния начин:

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
if (list($line) = file($counterfile))
{
   
list($count,$old_ip)=split( ":",$line);
   
if ($ip != $old_ip OR $reloadsperre == FALSE)
    {
     
$count++ ;
      
     
if ($datei=fopen($counterfile, "w"))
      {
       
fputs($datei, "$count:$ip");
       
fclose($datei);
     
} else {
       
error_image();
     
}
    }
  }
else {
   
error_image();
 
}
}
?>

В случай, че файла съществува се прочитат данните. Ако IP-то на потребителя е ново или е прескочило границата на блокиране се записват новите данни във файла.


Брояча се изпълва с нули от ляво

CODE
1
2
3
<?
$count = str_pad($count, $anzahl"0", STR_PAD_LEFT);
?>

Определя се големината на графиката

CODE
1
2
3
<?
$counter_size = GetImageSize( "0.png");
?>

Създава се празна графика върху която ще се наслагват по-късно цифрите.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$c_im = ImageCreate(($anzahl*$counter_size[0]), $counter_size[1]);
?>

<?
for($i=0;$i<$anzahl;$i++)
{
 
$src_im = ImageCreateFromPNG( "$count[$i].png");
 
ImageCopy($c_im,
 
$src_im,
 
($counter_size[0]*$i),
 
0,
 
0,
 
0,
 
$counter_size[0],
 
$counter_size[1]);                      
 
imagedestroy($src_im);
}
?>

Тази част е сърцето на скрипта. В тази част се нанасят графиките с числата чрез функзията imageCopy върху празната графика. Функцията imageCreateFromPNG отваря графиките на брояча и прочита изобразената цифра.


Накрая вече графиката на брояча се изобразява.

CODE
1
2
3
4
5
<?
Header( "Content-type: image/png");
ImagePNG($c_im);
imagedestroy($c_im);
?>

Запаметете този скрипт под името counter.php и го използвайте по следния начин във вашия HTML документ <img src="counter.php">.



   


Ключови думи: PHP графичен брояч GD сайт


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: Mutatos  
Николай Николов се занимава с програмиране на PHP/MySQL повече от 6 години. Заедно с разработката на уеб приложения на PHP, се занимава с Java, XML и Webservices.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008