当前位置:  编程技术>php

php 广告加载类(附源码)

    来源: 互联网  发布时间:2014-10-11

    本文导语:  本节内容: php 广告加载类,支持异步与同步加载。 需要使用Jquery类库。 1,广告加载类 ADLoader.class.php   代码示例:   2,配置文件类 ADConfig.php   代码示例:   3,ADLoader.js   代码示例: /** 异步加载广告 *   Date:   2013-08...

本节内容:
php 广告加载类,支持异步与同步加载。
需要使用Jquery类库。

1,广告加载类 ADLoader.class.php
 

代码示例:
 

2,配置文件类 ADConfig.php
 

代码示例:
 

3,ADLoader.js
 

代码示例:

/** 异步加载广告
*   Date:   2013-08-04
*   Author: fdipzone
*   Ver:    1.0
*/ 
var ADLoader = (function(){ 
 
    var _ads = [],     // 广告集合 
        _step = 300,   // 广告加载间隔 
        _async = true, // 是否异步加载 
        _loaded = 0;   // 已经加载的广告数 
 
     
    /** loadAd 循环加载广告
    * @param int c 第几个广告
    */ 
    function loadAD(c){ 
        if(_loaded>=_ads.length){ 
            return ; 
        } 
 
        if($('#'+_ads[c].domId).length>0){ // 判断dom是否存在 
 
            if(_async){ // 异步执行 
 
                crapLoader.loadScript(getScript(_ads[c]), _ads[c].domId, { 
                    success: function(){ 
                        completeAd(); 
                    } 
                }); 
             
            }else{ // 将同步加载的广告显示 
 
                var ad_container = $('#'+_ads[c].domId+'_container'); 
                ad_container.find('embed').attr('wmode','transparent').end().find('object').each(function(k, v){ 
                    v.wmode = 'transparent'; // 将flash变透明 
                }); 
                $('#'+_ads[c].domId)[0].appendChild(ad_container[0]); 
                ad_container.show(); 
                 
                completeAd(); 
 
            } 
 
        }else{ // dom不存在 
            completeAd(); 
        } 
    } 
 
    /** 加载完广告后处理 */ 
    function completeAd(){ 
        _loaded ++; 
        setTimeout(function(){ 
            loadAD(_loaded); 
        }, _step);         
    } 
 
    /** 获取广告
    * @param Array ad 广告参数
    */ 
    function getScript(ad){ 
        var ret = null; 
 
        switch(ad.type){ 
            case 'openx':  // openx code ad 
                ret = 'data:text/javascript;base64,' + ad.zoneId + 'dmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PSdodHRwczonPydodHRwczovL2Fkcy5ubWcuY29tLmhrL3d3dy9kZWxpdmVyeS9hanMucGhwJzonaHR0cDovL2Fkcy5ubWcuY29
tLmhrL3d3dy9kZWxpdmVyeS9hanMucGhwJyk7CnZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsKaWYgKCFkb2N1bWVudC5NQVhfdXNlZCkg
ZG9jdW1lbnQuTUFYX3VzZWQgPSAnLCc7CmRvY3VtZW50LndyaXRlICgiPHNjciIrImlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nIittM191KTsKZG9jdW1lbnQud3JpdGUgKCI/
em9uZWlkPSIgKyB6b25laWQpOwpkb2N1bWVudC53cml0ZSAoJyZhbXA7Y2I9JyArIG0zX3IpOwppZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gJywnKSBkb2N1bWVudC53cml0ZSAoIiZhb
XA7ZXhjbHVkZT0iICsgZG9jdW1lbnQuTUFYX3VzZWQpOwpkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/ICcmYW1wO2NoYXJzZXQ9Jytkb2N1bWVudC5jaGFyc2V0IDo
gKGRvY3VtZW50LmNoYXJhY3RlclNldCA/ICcmYW1wO2NoYXJzZXQ9Jytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiAnJykpOwpkb2N1bWVudC53cml0ZSAoIiZhbXA7bG9jPSIgKyBlc2
NhcGUod2luZG93LmxvY2F0aW9uKSk7CmlmIChkb2N1bWVudC5yZWZlcnJlcikgZG9jdW1lbnQud3JpdGUgKCImYW1wO3JlZmVyZXI9IiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikp
OwppZiAoZG9jdW1lbnQuY29udGV4dCkgZG9jdW1lbnQud3JpdGUgKCImY29udGV4dD0iICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsKaWYgKGRvY3VtZW50Lm1tbV9mbykgZG
9jdW1lbnQud3JpdGUgKCImYW1wO21tbV9mbz0xIik7CmRvY3VtZW50LndyaXRlICgiJz48XC9zY3IiKyJpcHQ+Iik7'; 
                break; 
            
            case 'url': // url ad 
                ret = ad.url; 
                break; 
        } 
 
        return ret; 
    } 
 
    /** 同步加载广告
    * @param Array ad 广告参数
    */ 
    function writeAd(ad){ 
        switch(ad.type){ 
            case 'openx': 
                var m3_u = (location.protocol=='https:'?'https://ads.nmg.com.hk/www/delivery/ajs.php':'http://ads.nmg.com.hk/www/delivery/ajs.php'); 
                var m3_r = Math.floor(Math.random()*99999999999); 
                if (!document.MAX_used) document.MAX_used = ','; 
                document.write (""); 
                break; 
             case 'url': 
                document.write (''); 
                break; 
        } 
    } 
   
    obj = { 
 
        /** 加载广告
        * @param Array   ads   广告集合
        * @param int     step  广告加载间隔
        * @param boolean async true:异步加载 false:同步加载
        */ 
        load: function(ads, step, async){ 
            _ads = ads; 
 
            if(typeof(step)!='undefined'){ 
                _step = step; 
            } 
 
            if(typeof(async)!='undefined'){ 
                _async = async; 
            } 
 
            loadAD(_loaded); 
        }, 
 
        /** 预加载广告 */ 
        preload: function(ad){ 
            if($('#'+ad.domId).length>0){   // 判断dom是否存在 
                writeAd(ad); 
            } 
        } 
 
    } 
 
    return obj; 
 
}()); 
 
 
/* crapLoader */ 
var crapLoader = (function() { 
     
    var isHijacked = false, 
        queue = [], 
        inputBuffer = [], 
        writeBuffer = {}, 
        loading = 0, 
        elementCache = {}, 
        returnedElements = [], 
        splitScriptsRegex = /( 0) { 
                returnedEl = returnedElements.pop(); 
                var id = returnedEl.id; 
                var elInDoc = getElementById(id); 
                if (!elInDoc) { continue; } 
                var parent = elInDoc.parentNode; 
                elInDoc.id = id + "__tmp"; 
                parent.insertBefore(returnedEl, elInDoc); 
                parent.removeChild(elInDoc); 
            } 
            finished(obj); 
        } 
    } 
 
    function debug (message, obj) { 
        if(!globalOptions.debug || !window.console) { return; } 
        var objExtra = ""; 
        if(obj) { 
            objExtra = "#"+obj.domId+" "; 
            var depth = obj.depth; 
            while(depth--) { objExtra += "    "; } 
        } 
        console.log("crapLoader " + objExtra + message); 
    } 
 
    function extend (t, s) { 
        var k; 
        if(!s) { return t; } 
        for(k in s) { 
            t[k] = s[k]; 
        } 
        return t; 
    } 
 
    function finished (obj) { 
        if(obj.success && typeof obj.success === "function") { 
            obj.success.call( document.getElementById(obj.domId) ); 
        } 
 
        checkQueue(); 
    } 
 
    function flush (obj) { 
        var domId = obj.domId, 
           outputFromScript, 
           htmlPartArray; 
 
        outputFromScript = stripNoScript( inputBuffer.join("") ); 
        inputBuffer = []; 
 
        htmlPartArray = separateScriptsFromHtml( outputFromScript ); 
 
        if(!writeBuffer[domId]) { 
            writeBuffer[domId] = htmlPartArray; 
        } else { 
            Array.prototype.unshift.apply(writeBuffer[domId], htmlPartArray); 
        } 
        checkWriteBuffer(obj); 
    } 
 
    function getCachedElById (domId) { 
        return elementCache[domId] || (elementCache[domId] = document.getElementById(domId)); 
    } 
 
    function getElementById (domId) { 
        return ( publ.orgGetElementById.call ? 
            publ.orgGetElementById.call(document, domId) : 
            publ.orgGetElementById(domId) ); 
    } 
 
    function getElementByIdReplacement (domId) { 
        var el = getElementById(domId), 
            html, frag, div, found; 
 
        function traverseForElById(domId, el) { 
            var children = el.children, i, l, child; 
            if(children && children.length) { 
                for(i=0,l=children.length; i 1 && match.index < str.length) { 
                    Array.prototype.push.apply(tmp, match.slice(1)); 
                } 
 
                prevIndex = regexp.lastIndex; 
            } 
 
            if(prevIndex < str.length) { 
                tmp.push(str.slice(prevIndex)); 
            } 
 
        } 
 
        for(i=0, l=tmp.length; i 
  
 
  
 

 
 
 
 
 
    
   
  
 

5,广告代码 adurl.php
 

代码示例:
 
var zoneid = ; 
var m3_u = (location.protocol=='https:'?'https://ads.nmg.com.hk/www/delivery/ajs.php':'http://ads.nmg.com.hk/www/delivery/ajs.php'); 
var m3_r = Math.floor(Math.random()*99999999999); 
if (!document.MAX_used) document.MAX_used = ','; 
document.write (""); 

附,php 广告加载类源代码下载地址


    
 
 

您可能感兴趣的文章:

  • PHP源码自动生成插件 PHP Source Plugin
  • PHP源码加密工具 SourceCop
  • linux下php编译显示源码
  • PHP源码文档工具 PHPXref
  • PHP 源码 make 出错
  • PHP 源码加密模块 php-beast
  • PHP网页游戏学习之Xnova(ogame)源码解读(一)
  • Linux+php+apache+oracle环境搭建之CentOS下源码编译安装PHP
  • PHP网页游戏学习之Xnova(ogame)源码解读(八)
  • PHP网页游戏学习之Xnova(ogame)源码解读(十二)
  • Centos源码安装PHP,页面显示空白
  • centos源码编译php5 mcrypt模块步骤详解
  • PHP网页游戏学习之Xnova(ogame)源码解读(十四)
  • PHP网页游戏学习之Xnova(ogame)源码解读(十一)
  • PHP网页游戏学习之Xnova(ogame)源码解读(九)
  • PHP网页游戏学习之Xnova(ogame)源码解读(十)
  • 从PHP的源码中深入了解stdClass类
  • PHP网页游戏学习之Xnova(ogame)源码解读(十三)
  • PHP网页游戏学习之Xnova(ogame)源码解读(四)
  • PHP网页游戏学习之Xnova(ogame)源码解读(六)
  • iis加载不到php.ini的解决方法
  • Apache 不能加载PHP模块
  • 不能自动加载index.php文件的二种修改方法
  • rhel5下因seliux致使apache不能加载php 如何解决
  • jQuery+PHP+ajax实现微博加载更多内容列表功能
  • php自动加载autoload机制实例分析
  • php自动加载autoload机制示例分享
  • PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • php抽奖程序与随机广告实现算法
  • 适用于抽奖程序、随机广告的PHP概率算法实例
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞
  • PHP的JavaScript框架 PHP.JS
  • php通过socket_bind()设置IP地址代码示例
  • php服务器探针显示php服务器信息
  • php安装完成后如何添加mysql扩展
  • PHP缓存加速器 Alternative PHP Cache (APC)
  • PHP的substr() 函数用法
  • PHP源文件加密工具 PHP Screw
  • PHP介绍及学习网站推荐
  • PHP自动化测试 PHP-QAT
  • php中操作memcache的类及成员列表及php下如何连接memched服务器
  • PHP 的 HTTP 客户端库 PHP Buzz
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • PHP 调试工具 PHP_Dyn


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3