PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php广告加载类用法实例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP广告加载类的用法,非常实用。分享给大家供大家参。具体方法如下:

PHP广告加载类,支持异步与同步加载。需要使用Jquery实现。

ADLoader.class.PHP文件如下:

@H_262_7@
PHP;">

class ADLoader{ // class start

private static $_ads = array(); // 广告集合
private static $_step = 300; // 广告加载间隔
private static $_async = true; // 是否异步加载
private static $_config = array(); // 广告设置文件
private static $_jsclass = null; // 广告JS class

/** 加载广告集合

  • @param String $channel 栏目,对应config文件

  • @param int $step 广告加载间隔

  • @param boolean $async 是否异步加载
    */
    public static function load($channel='',$step='',$async=''){
    if(isset($step) && is_numeric($step) && $step>0){
    self::$_step = $step;
    }

    if(isset($async) && is_bool($async)){
    self::$_async = $async;
    }

    // 判断浏览器,如IE强制使用同步加载
    if(!self::checkBrowser()){
    self::$_async = false;
    }

    self::getAds($channel);
    self::genZoneId();

    return self::genHtml();
    }

/** 设置config

  • @param String $config 广告配置
  • @param String $jsclass js class文件路径
    */
    public static function setConfig($config=array(),$jsclass=''){
    self::$_config = $config;
    self::$_jsclass = $jsclass;
    }

/** 根据chAnnel创建广告集合

  • @param String $chAnnel 栏目
    */
    private static function getAds($chAnnel=''){
    $AD_Config = self::$_config;
    if($AD_Config!=null){
    self::$_ads = isset($AD_Config[$chAnnel])? $AD_Config[$chAnnel] : $AD_Config['default'];
    }
    }

/* zonEID base64_encode 处理 /
private static function genZonEID(){

// 同步加载广告不需要处理zonEID 
if(!self::$_asynC){ 
  return ; 
} 

$ads = self::$_ads; 
for($i=0,$len=count($ads); $i<$len; $i++){ 
  if(isset($ads[$i]['zonEID'])){ 
    $ads[$i]['zonEID'] = base64_encode('var zonEID='.$ads[$i]['zonEID'].';'); 
  } 
} 
self::$_ads = $ads; 

}

/* 生成广告html /
private static function genHtml(){
$ads = self::$_ads;
$html = array();
if(self::$_jsclass!=null && $ads){
array_push($html,'<script type="text/javascript" src="'.self::$_jsclass.'">');

  // 同步需要预先加载 
  if(!self::$_asynC){ 
    foreach($ads as $ad){ 
      array_push($html,'<div id="'.$ad['domId'].'_container" style="display:none"&gt;'); 
      array_push($html,'<script type="text/javascript"&gt;'); 
      array_push($html,'ADLoader.preload('.json_encode($ad).');'); 
      array_push($html,'</script>'); 
      array_push($html,'</div>'); 
    } 
  } 

  array_push($html,'<script type="text/javascript"&gt;'); 
  array_push($html,'var ads='.json_encode($ads).';'); 
  array_push($html,'$(document).ready(function(){ ADLoader.load(ads,'.self::$_step.','.intval(self::$_asynC).'); });'); 
  array_push($html,'</script>'); 
} 
return implode("\r\n",$html); 

}

/* 判断是否需要强制同步加载的浏览器 /
private static function checkBrowser(){
$user_agent = $_SERVER['http_user_ageNT'];
if(strstr($user_agent,'MSIE')!=''){
return false;
}
return true;
}

} // class end
?>

大佬总结

以上是大佬教程为你收集整理的php广告加载类用法实例全部内容,希望文章能够帮你解决php广告加载类用法实例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。