Проблем с php банер ротатор

mnnedialkov

Member
Имам следният php код(който може би знаете повечето):

1. <?php

$fcontents = join ('', file ('reklami.txt'));
$s_con = split("~",$fcontents);

$banner_no = rand(0,(count($s_con)-1));
echo $s_con[$banner_no];
?>


2. reklami.txt файла:

1-вият рекл. код
~
2-рият рекл. код
~
т.н
_______

Обаче как да дам приоритет в процентно съотношение на рекламите - например 1-вата реклама да се показва 70%, 2-рата - 30%
?
 
От: Проблем с php банер ротатор

Здравей,
нещо такова
Код:
<?php
$fcontents = join ('', file ('reklami.txt'));
$s_con = split("~",$fcontents);

$percents = array(70,30);

$percent_arr = array();
foreach($percents as $index=>$percent) {
	$percent_arr = array_merge($percent_arr, array_fill(0, $percent, $index));
}

$banner_no = $percent_arr[mt_rand(0,count($percent_arr)-1)];
echo $s_con[$banner_no];
?>
като в масива $percents задаваш колко % да се показва съответният банер, за даденият случай първият ще се показва 70%, вторият 30%.
Важно е броятна стойностите в масива да отговаря на броят на банерите във файла, което е малко неудобно.
Възможно е да има някой друг бъг, все пак е скалъпено за 5 минути.
Поздрави,
Константин.
 
От: Проблем с php банер ротатор

Здравей,
нещо такова
Код:
<?php
$fcontents = join ('', file ('reklami.txt'));
$s_con = split("~",$fcontents);

$percents = array(70,30);

$percent_arr = array();
foreach($percents as $index=>$percent) {
	$percent_arr = array_merge($percent_arr, array_fill(0, $percent, $index));
}

$banner_no = $percent_arr[mt_rand(0,count($percent_arr)-1)];
echo $s_con[$banner_no];
?>
като в масива $percents задаваш колко % да се показва съответният банер, за даденият случай първият ще се показва 70%, вторият 30%.
Важно е броятна стойностите в масива да отговаря на броят на банерите във файла, което е малко неудобно.
Възможно е да има някой друг бъг, все пак е скалъпено за 5 минути.
Поздрави,
Константин.
Браво, много ти благодаря! :)
Но от какъв вид е ротацията - тя обхваща ли импресиите за целия сайта или само брои импресиите на отделния посетител? :)
 
От: Проблем с php банер ротатор

Здравей,
не съм сигурен, че правилно рзбрах какво ме питаш, но според мен е едно и също дали ще е базирано на импресиите на сайта или на потребителя. Все пак показването на банера е на случаен принцип, като вероятността кой да се покаже даден банер е базирано на зададеният % и случайната величина. Никъде не се взима предвид дали е за даден потребител или не.
Поздрави,
Константин.
 
От: Проблем с php банер ротатор

@mnnedialkov Кода който ти е дал само изкарва банерите не брои и не записва нищо. Ако искаш може да се направи да ти записва колко пъти е кликано на даден банер, но ще стане по друг начин зависи какъв е рекламният код
 
От: Проблем с php банер ротатор

Само аз ли виждам пълна липса на логика в тоя код? Има 10000 пъти по-удобни и смислени генератори.
 
От: Проблем с php банер ротатор

Здравейте,
ако ще се води статистика по-добре да се използва направо OpenX.
До колкото виждам питането е как на този код може да се добави приоритет на показването на банерите. Това е един от вариантите, останаха още 9999 по-смислени генератори. За по-голяма яснота мога и на Дажава да го напиша :)
Поздрави.
 

Горе