Рассмотрим пример скрипта с описанием,который позволяет динамически создавать диаграмму на основе переданых данных имеющую вид:
Такой скрипт,например будет очень удобен при создании статистики у вас на сайте (хотя его приаменения могут быть более разнообразными). Вы должны передать в этот скрипт 3 параметра : title,width и data.
- title - название диаграммы (в примере "foo")
- width - длина картинки в пикселях.
- data - переменные и значения по которым строится диаграмма
Удобство скрипта в том,что количество передаваемых переменных не ограничено
Внимание! GD должна быть включена
<? //Название $title = urldecode($title); //Данные $data = urldecode($data); //Начальная точка построения диаграммы $x = 40; $y = 30; $right_margin= 20; $bar_width = 10; $total = 0; $max = 0; $unit = (($width-$x)-$right_margin) / 100; $items= explode("^^",$data); //Сумма while (list($key,$item) = each($items)) { if ($item) { $pos = strpos($item,"^"); $value = substr($item,$pos+1,strlen($item)); $total = $total + $value; } } reset($items); //Подсчет высоты диаграммы $height = sizeof($items) * ($bar_width + 20); Header("Content-type: image/gif"); $im = imagecreate($width,$height); // Задание цвета $white=ImageColorAllocate($im,255,255,255); $yellow=ImageColorAllocate($im,240,240,70); $blue=ImageColorAllocate($im,0,64,128); $bar=ImageColorAllocate($im,64,100,168); //Задание фона ImageFilledRectangle($im,0,0,$width,$height,$blue); //Рисуем заголовок $title_x = (imagesx($im)-7.5*strlen($title))/2; ImageString($im,3,$title_x,4,$title,$white); //Рисуем дату ImageString($im,1,$width-150,17,date("D M jS Y h:i:s A"),$white); //Линия Imageline($im,$x,$y-5,$x,$height-15,$bar); //Прорисовываем данные while (list($key,$item) = each($items)) { if ($item) { $pos = strpos($item,"^"); $item_title = substr($item,0,$pos); $value = substr($item,$pos+1,strlen($item)); ImageFilledRectangle($im,$x,$y-2,$px,$y+$bar_width,$bar); ImageString($im,2,$x+5,$y+9,$item_title,$white); ImageRectangle($im,$px+1,$y-2,($x+(100*$unit)),$y+$bar_width,$bar); //Выводим отношения ImageString($im,1,($x+(100*$unit))-40,$y+12,$value."/".$total,$white); } $y=$y+($bar_width+20); } // Показываем созданую диаграму ImageGif($im); // Очищаем память: ImageDestroy($im); ?>
Вы также можете вызавать картинки в самом html документе,при помощи:
<img src="graph.php?title=foo&width=500&data=a^15^^b^20^^">
Ну вот и все.
Удачи в ваших программыных изысканиях!
Автор статьи: Тарасенко Сергей