php教程

超轻量级php框架startmvc

php广告加载类用法实例

更新时间:2020-02-28 00:25:58 作者:startmvc
php广告加载类用法实例 更新时间:2014年09月23日 12:12:50 投稿:shichen2014 我要评论这篇文章主要介绍了php广告加载类用法实例,采用jQuery技术可实现异步与同步加载,具有非常广泛的实用价值,需要的朋友可以参考下本文实例讲述了php广告加载类的用法,非常实用。分享给大家供大家参考。具体方法如下:该php广告加载类,支持异步与同步加载。需要使用Jquer

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

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

ADLoader.class.php类文件如下:


<?php 
/** 广告加载管理类 
* Date: 2013-08-04 
* Author: fdipzone 
* Ver: 1.0 
* 
* Func: 
* public load 加载广告集合 
* public setConfig 广告配置 
* private getAds 根据channel创建广告集合 
* private genZoneId zoneid base64_encode 处理 
* private genHtml 生成广告html 
* private checkBrowser 检查是否需要同步加载的浏览器 
*/ 
 
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.'"></script>'); 
 
 // 同步需要预先加载 
 if(!self::$_async){ 
 foreach($ads as $ad){ 
 array_push($html, '<div id="'.$ad['domId'].'_container" style="display:none">'); 
 array_push($html, '<script type="text/javascript">'); 
 array_push($html, 'ADLoader.preload('.json_encode($ad).');'); 
 array_push($html, '</script>'); 
 array_push($html, '</div>'); 
 } 
 } 
 
 array_push($html, '<script type="text/javascript">'); 
 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 
?>

ADConfig.php文件如下:


<?php 
/** 广告配置文件 **/ 
 
return array( 
 
 'case_openx' => array( 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_728x90', 
 'zoneId' => 452 
 ), 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_300x250', 
 'zoneId' => 449 
 ), 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_l2_300x250', 
 'zoneId' => 394 
 ), 
 ), 
 
 'case_url' => array( 
 array( 
 'type' => 'url', 
 'domId' => 'ad_728x90', 
 'url' => 'adurl.php?zoneid=452' 
 ), 
 array( 
 'type' => 'url', 
 'domId' => 'ad_300x250', 
 'url' => 'adurl.php?zoneid=449' 
 ), 
 array( 
 'type' => 'url', 
 'domId' => 'ad_l2_300x250', 
 'url' => 'adurl.php?zoneid=394' 
 ) 
 ), 
 
 'case_sync_openx' => array( 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_728x90', 
 'zoneId' => 452 
 ), 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_300x250', 
 'zoneId' => 449 
 ), 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_l2_300x250', 
 'zoneId' => 394 
 ), 
 ), 
 
 'default' => array( 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_728x90', 
 'zoneId' => 452 
 ), 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_300x250', 
 'zoneId' => 449 
 ), 
 array( 
 'type' => 'openx', 
 'domId' => 'ad_l2_300x250', 
 'zoneId' => 394 
 ), 
 ), 
 
); 
 
?>

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 + 'dmFyIG0zX3UgPSAobG9jYXRpb24ucHJvdG9jb2w9PSdodHRwczonPydodHRwczovL2Fkcy5ubWcuY29tLmhrL3d3dy9kZWxpdmVyeS9hanMucGhwJzonaHR0cDovL2Fkcy5ubWcuY29tLmhrL3d3dy9kZWxpdmVyeS9hanMucGhwJyk7CnZhciBtM19yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OTk5KTsKaWYgKCFkb2N1bWVudC5NQVhfdXNlZCkgZG9jdW1lbnQuTUFYX3VzZWQgPSAnLCc7CmRvY3VtZW50LndyaXRlICgiPHNjciIrImlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nIittM191KTsKZG9jdW1lbnQud3JpdGUgKCI/em9uZWlkPSIgKyB6b25laWQpOwpkb2N1bWVudC53cml0ZSAoJyZhbXA7Y2I9JyArIG0zX3IpOwppZiAoZG9jdW1lbnQuTUFYX3VzZWQgIT0gJywnKSBkb2N1bWVudC53cml0ZSAoIiZhbXA7ZXhjbHVkZT0iICsgZG9jdW1lbnQuTUFYX3VzZWQpOwpkb2N1bWVudC53cml0ZSAoZG9jdW1lbnQuY2hhcnNldCA/ICcmYW1wO2NoYXJzZXQ9Jytkb2N1bWVudC5jaGFyc2V0IDogKGRvY3VtZW50LmNoYXJhY3RlclNldCA/ICcmYW1wO2NoYXJzZXQ9Jytkb2N1bWVudC5jaGFyYWN0ZXJTZXQgOiAnJykpOwpkb2N1bWVudC53cml0ZSAoIiZhbXA7bG9jPSIgKyBlc2NhcGUod2luZG93LmxvY2F0aW9uKSk7CmlmIChkb2N1bWVudC5yZWZlcnJlcikgZG9jdW1lbnQud3JpdGUgKCImYW1wO3JlZmVyZXI9IiArIGVzY2FwZShkb2N1bWVudC5yZWZlcnJlcikpOwppZiAoZG9jdW1lbnQuY29udGV4dCkgZG9jdW1lbnQud3JpdGUgKCImY29udGV4dD0iICsgZXNjYXBlKGRvY3VtZW50LmNvbnRleHQpKTsKaWYgKGRvY3VtZW50Lm1tbV9mbykgZG9jdW1lbnQud3JpdGUgKCImYW1wO21tbV9mbz0xIik7CmRvY3VtZW50LndyaXRlICgiJz48XC9zY3IiKyJpcHQ+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 ("<scr"+"ipt type='text/javascript' src='"+m3_u); 
 document.write ("?zoneid=" + ad.zoneId); 
 document.write ('&cb=' + m3_r); 
 if (document.MAX_used != ',') document.write ("&exclude=" + document.MAX_used); 
 document.write (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : '')); 
 document.write ("&loc=" + escape(window.location)); 
 if (document.referrer) document.write ("&referer=" + escape(document.referrer)); 
 if (document.context) document.write ("&context=" + escape(document.context)); 
 if (document.mmm_fo) document.write ("&mmm_fo=1"); 
 document.write ("'><\/scr"+"ipt>"); 
 break; 
 case 'url': 
 document.write ('<script type="text/javascript" src="' + ad.url + '"></script>'); 
 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 = /(<script[\s\S]*?<\/script>)/gim, 
 globalOptions = { 
 autoRelease: true, 
 parallel: true, 
 debug: false 
 }, 
 defaultOptions = { 
 charset: undefined, 
 success: undefined, 
 func: undefined, 
 src: undefined, 
 timeout: 3000 
 },publ, 
 head = document.getElementsByTagName("head")[0] || document.documentElement, 
 support = { 
 scriptOnloadTriggeredAccurately: false, 
 splitWithCapturingParentheses: ("abc".split(/(b)/)[1]==="b") 
 }; 
 
 function checkQueue () { 
 if(queue.length) { 
 loadScript( queue.shift() ); 
 } else if(loading === 0 && globalOptions.autoRelease) { 
 debug("Queue is empty. Auto-releasing."); 
 publ.release(); 
 } 
 } 
 
 function checkWriteBuffer (obj) { 
 var buffer = writeBuffer[obj.domId], 
 returnedEl; 
 
 if(buffer && buffer.length) { 
 writeHtml( buffer.shift(), obj ); 
 
 } else { 
 while (returnedElements.length > 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<l; i++) { 
 child = children[i]; 
 if(child.id && child.id === domId) { return child; } 
 if(child.children && child.children.length) { 
 var tmp = traverseForElById(domId, child); 
 if (tmp) return tmp; 
 } 
 } 
 } 
 } 
 
 function searchForAlreadyReturnedEl(domId) { 
 var i, l, returnedEl; 
 for(i=0,l=returnedElements.length; i<l; i++) { 
 returnedEl = returnedElements[i]; 
 if(returnedEl.id === domId) { return returnedEl; } 
 } 
 } 
 
 if(el) { return el; } 
 
 if (returnedElements.length) { 
 found = searchForAlreadyReturnedEl(domId); 
 if (found) { 
 return found; 
 } 
 } 
 
 if(inputBuffer.length) { 
 html = inputBuffer.join(""); 
 frag = document.createDocumentFragment(); 
 div = document.createElement("div"); 
 div.innerHTML = html; 
 frag.appendChild(div); 
 found = traverseForElById(domId, div); 
 if (found) { 
 returnedElements.push(found); 
 } 
 return found; 
 } 
 } 
 
 var globalEval = (function () { 
 return (window.execScript ? function(code, language) { 
 window.execScript(code, language || "JavaScript"); 
 } : function(code, language) { 
 if(language && !/^javascript/i.test(language)) { return; } 
 window.eval.call(window, code); 
 }); 
 }()); 
 
 function isScript (html) { 
 return html.toLowerCase().indexOf("<script") === 0; 
 } 
 
 function runFunc (obj) { 
 obj.func(); 
 obj.depth++; 
 flush(obj); 
 } 
 
 function loadScript (obj) { 
 loading++; 
 // async loading code from jQuery 
 var script = document.createElement("script"); 
 if(obj.type) { script.type = obj.type; } 
 if(obj.charset) { script.charset = obj.charset; } 
 if(obj.language) { script.language = obj.language; } 
 
 logScript(obj); 
 
 var done = false; 
 // Attach handlers for all browsers 
 script.onload = script.onreadystatechange = function() { 
 loading--; 
 script.loaded = true; 
 if ( !done && (!this.readyState || 
 this.readyState === "loaded" || this.readyState === "complete") ) { 
 done = true; 
 script.onload = script.onreadystatechange = null; 
 debug("onload " + obj.src, obj); 
 flush(obj); 
 } 
 }; 
 
 script.loaded = false; 
 script.src = obj.src; 
 obj.depth++; 
 
 // Use insertBefore instead of appendChild to circumvent an IE6 bug. 
 // This arises when a base node is used (#2709 and #4378). 
 head.insertBefore( script, head.firstChild ); 
 setTimeout(function() { 
 if(!script.loaded) { throw new Error("SCRIPT NOT LOADED: " + script.src); } 
 }, obj.timeout); 
 } 
 
 function logScript (obj, code, lang) { 
 debug((code ? 
 "Inline " + lang + ": " + code.replace("\n", " ").substr(0, 30) + "..." : 
 "Inject " + obj.src), obj); 
 } 
 
 function separateScriptsFromHtml (htmlStr) { 
 return split(htmlStr, splitScriptsRegex); 
 } 
 
 function split (str, regexp) { 
 var match, prevIndex=0, tmp, result = [], i, l; 
 
 if(support.splitWithCapturingParentheses) { 
 tmp = str.split(regexp); 
 } else { 
 // Cross browser split technique from Steven Levithan 
 // http://blog.stevenlevithan.com/archives/cross-browser-split 
 tmp = []; 
 while(match = regexp.exec(str)) { 
 if(match.index > prevIndex) { 
 result.push(str.slice(prevIndex, match.index)); 
 } 
 
 if(match.length > 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<l; i=i+1) { 
 if(tmp[i]!=="") { result.push(tmp[i]); } 
 } 
 return result; 
 } 
 
 function stripNoScript (html) { 
 return html.replace(/<noscript>[\s\S]*?<\/noscript>/ig, ""); 
 } 
 
 function trim (str) { 
 if(!str) { return str; } 
 return str.replace(/^\s*|\s*$/gi, ""); 
 } 
 
 function writeHtml (html, obj) { 
 if( isScript(html) ) { 
 var dummy = document.createElement("div"); 
 dummy.innerHTML = "dummy<div>" + html + "</div>"; // trick for IE 
 var script = dummy.children[0].children[0]; 
 var lang = script.getAttribute("language") || "javascript"; 
 if(script.src) { 
 obj.src = script.src; 
 obj.charset = script.charset; 
 obj.language = lang; 
 obj.type = script.type; 
 loadScript(obj); 
 } else { 
 var code = trim( script.text ); 
 if(code) { 
 logScript( obj, code, lang); 
 globalEval( code, lang); 
 } 
 flush(obj); 
 } 
 } else { 
 var container = getCachedElById(obj.domId); 
 if(!container) { 
 throw new Error("crapLoader: Unable to inject html. Element with id '" + obj.domId + "' does not exist"); 
 } 
 
 html = trim(html); // newline before <object> cause weird effects in IE 
 if(html) { 
 container.innerHTML += html; 
 } 
 checkWriteBuffer(obj); 
 } 
 } 
 
 function writeReplacement (str) { 
 inputBuffer.push(str); 
 debug("write: " + str); 
 } 
 
 function openReplacement () { 
 // document.open() just returns the document when called from a blocking script: 
 // http://www.whatwg.org/specs/web-apps/current-work/#dom-document-open 
 return document; 
 } 
 
 function closeReplacement () { 
 // document.close() does nothing when called from a blocking script: 
 // http://www.whatwg.org/specs/web-apps/current-work/#dom-document-close 
 } 
 
 publ = { 
 hijack: function(options) { 
 if(isHijacked) { return; } 
 isHijacked = true; 
 extend(globalOptions, options); 
 if(globalOptions.parallel && !support.scriptOnloadTriggeredAccurately) { 
 globalOptions.parallel = false; 
 debug("Browsers onload is not reliable. Disabling parallel loading."); 
 } 
 
 document.write = document.writeln = writeReplacement; 
 document.open = openReplacement; 
 document.close = closeReplacement; 
 document.getElementById = getElementByIdReplacement; 
 }, 
 
 release: function() { 
 if(!isHijacked) { return; } 
 isHijacked = false; 
 document.write = this.orgWrite; 
 document.writeln = this.orgWriteLn; 
 document.open = this.orgOpen; 
 document.close = this.orgClose; 
 document.getElementById = this.orgGetElementById; 
 elementCache = {}; 
 }, 
 
 handle: function(options) { 
 if(!isHijacked) { 
 debug("Not in hijacked mode. Auto-hijacking."); 
 this.hijack(); 
 } 
 var defaultOptsCopy = extend({}, defaultOptions); 
 var obj = extend(defaultOptsCopy, options); 
 obj.depth = 0; 
 
 if (!obj.domId) { 
 obj.domId = "craploader_" + new Date().getTime(); 
 var span = document.createElement("span"); 
 span.id = obj.domId; 
 document.body.appendChild(span); 
 } 
 
 if (options.func) { 
 runFunc(obj); 
 return; 
 } 
 
 if(globalOptions.parallel) { 
 setTimeout(function() { 
 loadScript(obj); 
 }, 1); 
 } else { 
 queue.push(obj); 
 setTimeout(function() { 
 if(loading === 0) { 
 checkQueue(); 
 } 
 }, 1); 
 } 
 }, 
 
 loadScript: function(src, domId, options) { 
 if (typeof domId !== "string") { 
 options = domId; 
 domId = undefined; 
 } 
 this.handle(extend({ 
 src: src, 
 domId: domId 
 }, options)); 
 }, 
 
 runFunc: function(func, domId, options) { 
 if (typeof domId !== "string") { 
 options = domId; 
 domId = undefined; 
 } 
 this.handle( extend({ 
 domId: domId, 
 func: func 
 }, options) ); 
 }, 
 
 orgGetElementById : document.getElementById, 
 orgWrite : document.write, 
 orgWriteLn : document.writeln, 
 orgOpen : document.open, 
 orgClose : document.close, 
 _olt : 1, 
 _oltCallback : function() { 
 support.scriptOnloadTriggeredAccurately = (publ._olt===2); 
 } 
 }; 
 
 return publ; 
}());

demo.php示例程序如下:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
 <head> 
 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
 <title> AD Loader </title> 
 <style type="text/css"> 
 .banner1{margin:10px; border:1px solid #CCCCCC; width:728px; height:90px;} 
 .banner2{margin:10px; border:1px solid #CCCCCC; width:300px; height:250px;} 
 </style> 
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
 </head> 
 
 <body> 
 <div class="banner1" id="ad_728x90"></div> 
 <div class="banner2" id="ad_300x250"></div> 
 <div class="banner2" id="ad_l2_300x250"></div> 
 
 <?php 
 function showAD($channel='', $step='', $async=''){ 
 include('ADLoader.class.php'); 
 $ad_config = include('ADConfig.php'); 
 ADLoader::setConfig($ad_config, 'ADLoader.js'); 
 return ADLoader::load($channel, $step, $async); 
 } 
 
 echo showAD('case_openx'); // 异步加载 
 //echo showAD('case_url'); // url方式异步加载 
 //echo showAD('case_sync_openx', 300, false); // 同步加载 
 ?> 
 
 </body> 
</html>

adurl.php文件如下:


<?php
$zoneid = isset($_GET['zoneid'])? intval($_GET['zoneid']) : 0; 
if($zoneid){ 
?> 
var zoneid = <?=$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 ("<scr"+"ipt type='text/javascript' src='"+m3_u); 
document.write ("?zoneid=" + zoneid); 
document.write ('&cb=' + m3_r); 
if (document.MAX_used != ',') document.write ("&exclude=" + document.MAX_used); 
document.write (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : '')); 
document.write ("&loc=" + escape(window.location)); 
if (document.referrer) document.write ("&referer=" + escape(document.referrer)); 
if (document.context) document.write ("&context=" + escape(document.context)); 
if (document.mmm_fo) document.write ("&mmm_fo=1"); 
document.write ("'><\/scr"+"ipt>"); 
<? } ?>

本文所述完整实例源码点击此处本站下载。

希望本文所述对大家的php程序设计有所帮助。

php 广告 加载