RSS
people

Показ баннеров на РНР

Должно быть, Вы видели на многих сайтах рекламные баннеры. На некоторых сайтах они относятся к тематике сайта, на некоторых – нет, но статья не об этом. Как разместит эти баннеры на своей странице? Довольно часто web-мастера поступают следующим образом. Заходят на сайт какой-нибудь баннерной сети, регистрируют в ней свой сайт и получают -код для размещения на своем сайте случайного баннера из каталога баннерной сети.

Конечно, web-мастеру довольно выгодно зарегистрироваться в баннерной сети – ведь и его баннер демонстрируется на сайтах, зарегистрированных в той же баннерной сети.

Но этот вариант подходит далеко не в каждом случае. Сайты, сделанные только при помощи , JavaScript и CSS, можно отлаживать и в режиме автономной работы. Но сайты, использующие при работе серверные скрипты (PHP, ASP) и/или базы данных, надо отлаживать на LocalHost’e НЕ в режиме автономной работы. Все бы хорошо, но при размещении приведенного выше -кода при загрузке страницы браузер пытается подключиться к Интернету. Поэтому в таких случаях приходится, чтобы и сайт работал на LocalHost’e, и изображение баннера выводилось, вставлять код баннера во все страницы уже после окончания работы над сайтом. А это довольно неудобно.

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

Теперь определимся, что нужно для этого использовать. Писать будем на PHP. Вся нужная нам информация будет храниться в текстовом файле, поэтому наличия MySQL не потребуется. В этом текстовом файле должна храниться полная информация о всех баннерах (высота, ширина, адрес изображения, т.е. его URL), демонстрируемых на сайте. Кроме того, в этом файле будет храниться информация о том, сколько раз баннер демонстрировался посетителям, а также сколько раз на него нажимали (!).

Для начала давайте создадим тестовый файл. Назовем его banner.txt . В нем будут храниться данные такого вида:

URL1|IMG1|NAME1|WH1|SHOW1|CL1
URL2|IMG2|NAME2|WH2|SHOW2|CL2

Эти строки означают следующее:

URL - ссылка, на которую будет переходить пользователь по нажатию на изображение баннера;
IMG - адрес файла изображения, которое будет выводиться на экран;
NAME – альтернативный текст изображения (в тэге параметр ALT);
WH - строка вида WIDTH=XX HEIGHT=XX (ширина и высота изображения). Если все изображения одного размера, соответственно можно упростить скрипт, но пока что лучше оставим так, ведь набрать лишнюю пару слов легче, чем потом переделывать весь скрипт.
SHOW - показы баннера. Поскольку баннеры еще нигде не демонстрировались, то изначально пишем - 0;
CL – количество нажатий на данный баннер, пишем тоже - 0;

Теперь создадим два PHP-файла. Один из них (show.php) будет отвечать за показ баннеров, другой (click.php) будет подсчитывать количество кликов по баннеру.

Пишем show.php. Откройте любимый текстовый редактор и наберите следующий текст.

Сначала загружаем файл, в котором хранится описание баннеров:

$array_bann = file (’banner.txt’);

Потом выбираем случайную запись из считанного файла, разделяем ее на элементы по признаку “|” с помощью функции explode() и заносим их в массив $data_bann.

srand((double)microtime()*1000000);
$pos = rand(0,sizeof($array_bann)-1);
$data_bann=explode (”|”, $array_bann[$pos]);

Далее выводим на экран сам баннер на основе данных из массива $data_bann.

echo “”;

Увеличиваем счетчик показов баннера на единицу.

$data_bann[4]++;

Склеиваем измененную запись и записываем весь массив в файл.

$array_bann[$pos]=join(’|',$data_bann);
$fp= fopen (’database.txt’,”w”);
flock($fp,3);
fwrite ($fp, join(”,$array_bann));
fclose ($fp);
?>

Теперь пишем файл click.php.

Открываем файл с исходными данными.

$array_bann = file (’banner.txt’);

В переменной $banner у нас находится уже переданный из -файла номер баннера, по которому кликнули. Берем запись, соответствующую этому номеру, опять разделяем ее по признаку “|” при помощи той же функции explode() и заносим это в массив $data_bann.

$data_bann=explode (”|”, $array_bann[$banner]);

Увеличиваем счетчик показов на единицу, склеиваем запись обратно в $array_bann.

$data_bann[5]=$data_bann[5]+1;
$array_bann[$banner]=join(’|',$data_bann).”\n”;

И записываем измененный массив в файл database.txt.

$fp= fopen (’database.txt’,”w”);
flock($fp,3);
fwrite ($fp, join(”,$array_bann));
fclose ($fp);

Пересылаем пользователя по адресу, хранящемуся в переменной $data_bann[0].

header(”Location: http://$data_bann[0]“);
?>

В заключение хочу добавить, что при помощи полученных данных можно, к примеру, составить статистику, сколько раз каждый из баннеров был просмотрен, и сколько раз по нему нажимали. Таким образом можно определить наиболее привлекательные для пользователей баннеры. А что делать с этой информацией – это уже Ваше дело. Конечно, этот скрипт очень прост, но он выполняет все требования, которые были выдвинуты к нему в начале статьи. А если Вам нужно что-то более солидное, то нужно применять базу данных MySQL.

Оставить комментарий или два

демоверсия егэ 2012 физика 11 класс предварительный вариант по математике егэ егэ математика примерные задания здесь результаты ответы к с1 егэ 2012 по русскому языку на сайте баллы и оценка егэ 2012 по истории математика результаты егэ за егэ демонстрационный вариант 2012 русский егэ онлайн 2012 бесплатно математика демо версия заданий егэ по истории егэ 2012 по математике за курс основной школы тесты к егэ по обществознанию демонстрационный вариант ким егэ по биологии 2012 егэ математика 2012 высоцкий егэ по егэ математика варианты работ егэ по обществознанию вариант 1 блок по егэ по русскому языку для задания с егэ по математике 2012 демонстрационный вариант демонстрационные варианты егэ алгебра тесты 9 класс реальные варианты егэ 2012 года информатика тесты по егэ здесь пробные онлайн готовые задания по русскому по егэ егэ по информатике 2012 отметки реальные варианты егэ математика тест егэ егэ физика демоверсия егэ русский язык 2012 подготовка варианты егэ sitemap