function GetBannersArray() {
//Просматривает директорию ADV и выдаёт в массиве инфо по банерам
$banner = array();
$d = dir($this->domain->dir['adv']);
$i = 0;
while($entry = $d->read()) {
if ($entry == '.' || $entry == '..') continue;
list ($banner[$i]['size'], $banner[$i]['name'], $banner[$i]['proc'],
$banner[$i]['type']) = explode(".", $entry);
$i++;
}
$d->close;
return $banner;
}
function GetBannerArr($banner,$element,$value) {
for ($i=0; $i<sizeof($banner); $i++ ) {
if ( $banner[$i][$element] == $value) {
$arr[] = $banner[$i];
}
}
return ( !isset($arr) ? 0 : $arr );
}
function GetBannerNew($type) {
$allbanners = $this->GetBannersArray();
mt_srand((double)microtime()*1000000000);
if(rand(0,1)) {
$arr = $this->GetBannerArr(&$allbanners,'type', 'A');
} else {
$arr = $this->GetBannerArr(&$allbanners,'type', 'B');
}
$banners = $this->GetBannerArr(&$arr,'size', $type);
$arr = array();
$i=0;
for ($k=0 ; $k<sizeof($banners) ; $k++){
$l = $i + $banners[$k]['proc'];
for (;$i<$l;$i++){
$arr[$i]=$banners[$k]['name'].".".$banners[$k]['proc'];
}
}
if($i<99) $arr = array_pad($arr,100,$arr[$i-1]);
$k=rand(0,99);
$bid = $this->domain->dir['adv'].'/'.$type.'.'.$arr[$k].'.'.$banners[0]['type'];
//echo $bid;
$code = join("", file($bid));
return $code;
}
Примерно так .