Создание GIF-файлов с помощью PHP
  бесплатный софт

SoftHolm.com     Программы     Статьи    Книги    Mobile    Доска объявлений    Форум    RSS




PHP скрипт - Информер числа загрузок программы с софт-каталога www.softholm.com/download/



Создадим GIF-файл с помощью PHP.

GIF позволяет создавать изоражентия довольно хорошего качества, применяется в основном для хранения небольших точечных рисунков и диаграмм .

Зачем может понадобиться в Web-программировании работа с изображениями? Разве это не работа дизайнера? В большинстве случаев это действительно так. Однако есть и исключения, например, графические счетчики ( создаваемые картинки с отображаемым поверх числом, которое увеличивается при каждом заходе пользователя на страницу ), или же графики, которые пользователь может строить в реальном времени - скажем, диаграммы сбыта продукции или снижения цен на комплектующие. Все эти приложения требуют как минимум умения генерировать изображения " лету ", причем с довольно большой скоростью.

PHP не ограничен созданием только HTML вывода. Он может также использоваться для создания файлов GIF, или даже более удобные потоки изображений GIF.

Посмотреть работу скрипта создания GIF файлов можно на странице.

Рассмотрим пример сценария, который представляет собой не HTML-страницу в обычном смысле, а рисунок GIF. То есть URL этого сценария можно поместить в тэг : <img src="http://softholm.com/php/award.php?rid=19"> Как только будет загружена страница , содержащая указанный тэг, сценарий запустится и отобразит надпись 19 (ID программы в софт-каталоге www.softholm.com/download/ ) на фоне рисунка, лежащего в /php/award.gif. Полученная картинка нигде не будет храниться - она создается " лету ". В файл HTML следует вставить следующий фрагмент кода. :

<! ------------- Информер SoftHolm.com ---------->

<a href="http://softholm.com/" target=_blank1>
<img src="http://softholm.com/php/award.php?rid=19" border="0"
alt="количество загрузок программы из софт-каталога SoftHolm.com " >
</a>

<! ------------------------------------------------------->




Далее приводится листинг скрипка award.php :


    <?php


   //<?php - для PHP-движка этот код означает начало блока команд, 
   // которые надо обработать и  выполнить . 
   // Заканчивается блок ограничителем ? >.

    Header("Content-type: image/gif");

   $db=mysql_connect ("localhost", "user", "password") 
   or die   ('I cannot connect to the database because: ' . mysql_error());

    // int mysql_connect (string hostname, string username, string password);
    // Создать соединение с MySQL.
    // Параметры :
    // Hostname - имя хоста , на котором находится база данных .
    // Username - имя пользователя .
    // Password - пароль пользователя .

    mysql_select_db ("my_bd"); 

     // int mysql_select_db(string database_name);
     // Выбрать базу данных для работы .
     // Параметры :
     // Database_name - имя базы данных .

   $result = mysql_query(   "select  downloads   from   TTable  
   where   id=$rid   ",$bd);

     // int mysql_query(string query, int link_identifier);
     // Функция выполняет запрос к базе данных .
     // Параметры :
     // query - строка , содержащая запрос
     // link_identifier -  ID соединения , которое получено 
     // в функции mysql_connect.
  
     // Выбираем downloads - число скачиваний программы с 
     // ID (индентификатором), равным  значению $rid (19) из
     // таблицы   TTable  

    List( $dima) = mysql_fetch_row($result);


     // Переменная $result является массивом. Причем не простым массивом, 
     // а двумерным.  Mysql_fetch_row ( в переводе буквально означает – " ряд ").
     // Функции mysql_fetch_row в качестве параметра подается массив $result. 
     // Функция выбирает из него строку. Вызвав снова mysql_fetch_row, мы 
     // выберем следующую строку из массива,  и так далее до тех пор, пока 
     // не достигнем конца массива. В этом случае mysql_fetch_row вернет
     //  значение false.

    mysql_close($bd);

     // int mysql_close(int link_identifier);
     // Функция закрывает соединение с MySQL.
     // Параметры :
     // link_identifier – см . выше .



   $string=$dima; 
  
   $im = imagecreatefromgif("http://softholm.com/php/award.gif");   

   // выбираем рисунок award.gif, на который будем накладывать 
   // строковое значение числа загрузок программы

   $bl = ImageColorAllocate($im, 235, 217, 133);

   // Создание нового цвета
   // int imageColorAllocate(int $im, int $red, int $green, int $blue)
   // Функция возвращает идентификатор цвета , связанного с соответствующей тройкой
   // RGB. Обратите внимание , что первым параметром функция требует идентификатор
   // изображения , загруженного в память или созданного до этого. 
   // Например , (0,0,0) - черный цвет , (255,255,255) - белый 

   ImageString($im, 1,  63, 18, $string, $bl );  
  
   // Вывод строки
   // int imageString(int $im, int $font, int $x, int $y, string $s, int $col)
   // Выводит строку $s в изображение $im , используя шрифт $font и цвет $col . 
   // Координаты  ( $x , $y ) будут координатами левого верхнего угла 
   // прямоугольника , в который  вписана строка .


    ImageGif($im);  

    ImageDestroy($im);


    ?>

Этот пример вызывается со страницы тегом: <img src="http://softholm.com/php/award.php?rid=19"> Вышеупомянутый скрипт award.php берет строку "19" (ID программы в софт-каталоге www.softholm.com/download/ ), накладывает сверху на основное изображение, которым в этом случае является "http://softholm.com/php/award.gif" и выводит возникающее в результате изображение. Это - очень удобный способ не рисовать новые изображения кнопки, каждый раз, когда вы хотите изменить текст кнопки. Этим методом они будут динамически сгенерированы.



Rambler's Top100 Заработай на своем сайте Рейтинг@Mail.ru