Реклама на сайте Advertise with us

Простейший ротатор баннеров на php

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 04/11/12 в 16:38       Ответить с цитатойцитата 

Господа профи пхп программирования прошу совета. Сам я в пыхе не бельмеса. Вот позанимался аппликацией скрипта из этого топика под свои нужды.

создал файлы
banner.txt
descr.txt
title.txt
url.txt
данные в каждом синхронизированные. т.е. первая строка это баннер, деска, тайтл и урл одного спонсора, вторая другого и т.д.

создал файл rotate.php с содержимым
Код:
<?php
$filename = "/usr/home/bebe/public_html/banner.txt";
$banner = file($filename);

$filename = "/usr/home/bebe/public_html/descr.txt";
$descr = file($filename);

$filename = "/usr/home/bebe/public_html/title.txt";
$title = file($filename);

$filename = "/usr/home/bebe/public_html/url.txt";
$url = file($filename);

$out = array_rand($banner, 4);
?>


В php темплейте сиджа делаю инклюд ротатора
<?php include_once ('/usr/home/bebe/public_html/rotate.php'); ?>

Далее в нужных местах вставляю таблицу
Код:
<table class=ads>
  <tr align=center>
    <td width="25%"><a href="<?=$url[$out[0]]?>"><?=$title[$out[0]]?></a></td>
    <td width="25%"><a href="<?=$url[$out[1]]?>"><?=$title[$out[1]]?></a></td>
    <td width="25%"><a href="<?=$url[$out[2]]?>"><?=$title[$out[2]]?></a></td>
    <td width="25%"><a href="<?=$url[$out[3]]?>"><?=$title[$out[3]]?></a></td>
  </tr>
  <tr align=center>
    <td><a href="<?=$url[$out[0]]?>"><img src="<?=$banner[$out[0]]?>"></a></td>
    <td><a href="<?=$url[$out[1]]?>"><img src="<?=$banner[$out[1]]?>"></a></td>
    <td><a href="<?=$url[$out[2]]?>"><img src="<?=$banner[$out[2]]?>"></a></td>
    <td><a href="<?=$url[$out[3]]?>"><img src="<?=$banner[$out[3]]?>"></a></td>
  </tr>
  <tr align=center>
    <td><?=$descr[$out[0]]?></td>
    <td><?=$descr[$out[1]]?></td>
    <td><?=$descr[$out[2]]?></td>
    <td><?=$descr[$out[3]]?></td>
  </tr>
</table>


В общем то все работает.
Но как это сказывается на нагрузке на сервер, скорость отдачи главной страницы?
ведь при каждой загрузке дергается 5 файлов - 4 текстовки и 1 пхп.

А может быть я вообще нагородил фигни и все можно реализовать более оптимально?

0
 



С нами с 28.02.12
Сообщения: 1494
Рейтинг: 234

Ссылка на сообщениеДобавлено: 04/11/12 в 18:02       Ответить с цитатойцитата 

если у тебя файлы не по гигу скрипт не сложнее "Hello world!". вместо файлов можно массивы в самом скрипте создать

Каталог партнерок с инвайтами

4
 



С нами с 11.10.12
Сообщения: 428
Рейтинг: 1032


Передовик Master-X (16.11.2012)
Ссылка на сообщениеДобавлено: 04/11/12 в 18:34       Ответить с цитатойцитата 

Если эта вставочка станет задерживать "отдачу главной страницы", ты должен будешь возблагодарить своих богов, которые послали тебе такой трафик и такие горы спонсоров.

По коду - проще не придумаешь. И, таки да, "более оптимально" можно. Можно все данные бросить в один csv файл. А можно закинуть все данные в одну таблицу sqlite и данные извлекать по индексу, не читая целиком всё сразу.

П/С/ Первое слово прочёл как "ГосподИ" smail101.gif

4
 



С нами с 13.01.03
Сообщения: 1032
Рейтинг: 1146

Ссылка на сообщениеДобавлено: 04/11/12 в 20:51       Ответить с цитатойцитата 

я ни в коем разе не профи, но главный тут гимор имхо в синхронизации, чтобы не напутать что с чем вяжется...))) если интересно поковыряться дальше самому и не париться с синхронизацией, то лучше сделать в одном файле data.txt все необходимое через "|" к примеру (banner|descr|title|url) и потом через такую конструкцию все читать из него

Код: [развернуть]

4
 



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 05/11/12 в 05:48       Ответить с цитатойцитата 

Хорошо, когда будет много трафа тогда поковыряю sqlite icon_smile.gif

Doctor: Да вот это более интересно. Я не знал как распарсить строку на переменные.

не сразу догадался что массив в цикле не создается icon_cool.gif

Получилось так:
Код:
<?php
$contents = file("data.txt");
$title = array();
$descr = array();
$url = array();
$banner = array();

for ($i=0;$i<count($contents);$i++) {
list($t,$d,$u,$b)=explode("|",$contents[$i]);
$title[] = $t;
$descr[] = $d;
$url[] = $u;
$banner[] = $b;
}
$out = array_rand($contents, 4);
?>

0
 



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 05/11/12 в 06:35       Ответить с цитатойцитата 

хм, а интересный пхп язык. Cократил и тоже работает. Привык на дельфях все заранее обьявлять icon_smile.gif

Код:
<?php
$contents = file("data.txt");
for ($i=0;$i<count($contents);$i++) {
list($title[],$descr[],$url[],$banner[])=explode("|",$contents[$i]);
}
$out = array_rand($contents, 4);
?>

0
 



С нами с 27.07.05
Сообщения: 276
Рейтинг: 255

Ссылка на сообщениеДобавлено: 06/11/12 в 05:48       Ответить с цитатойцитата 

такой скрипт проще написать на паскале, какой смысл нагружать всё это на php?

1
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »