国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php 隨機排序廣告的實現(xiàn)代碼

2024-05-04 23:18:41
字體:
供稿:網(wǎng)友
投放廣告的人都很關(guān)注他的廣告會放在哪個位置, 因為這可能影響點擊次數(shù), 甚至是否在第一屏顯示. 就這個問題, 其實很容易解決, 只要隨機顯示廣告即可.

代碼如何實現(xiàn)? 在這我推薦兩種隨機顯示廣告的處理辦法.

在后端處理
在后端排序好再輸出頁面. 將廣告節(jié)點用數(shù)組存放, 對數(shù)組進行隨機排序, 再輸出經(jīng)過排序的數(shù)組. 參考代碼 (PHP) 如下:

復制代碼 代碼如下:


// 用數(shù)組存放廣告列表
$ads = array('<a href="#"><img src="ad-125x125.png" /></a>'
,'<a href="#"><img src="ad-125x125.png" /></a>'
,'<a href="#"><img src="ad-125x125.png" /></a>'
,'<a href="#"><img src="ad-125x125.png" /></a>'
);

// 對數(shù)組進行隨機排序
shuffle($ads);

// 輸出經(jīng)過排序的數(shù)組
$html = '';
foreach ($ads as $ad) {
$html .= $ad;
}
echo $html;


我們來擴展一下, 如果我是站長, 預(yù)留了 4 個廣告位, 但現(xiàn)在只有 3 個在投放; 我想在空置的廣告位放置一個 "虛位以待" 的廣告招租鏈接, 并顯示在最后, 該如何處理呢? 在排序完成之后再插放廣告招租鏈接就可以了.

復制代碼 代碼如下:


// 用數(shù)組存放廣告列表
$ads = array('<a href="#"><img src="ad-125x125.png" /></a>'
,'<a href="#"><img src="ad-125x125.png" /></a>'
,'<a href="#"><img src="ad-125x125.png" /></a>'
);

// 對數(shù)組進行隨機排序
shuffle($ads);

// 輸出經(jīng)過排序的數(shù)組
$html = '';
foreach ($ads as $ad) {
$html .= $ad;
}

// 添加廣告招租鏈接
$html .= '<a href="#"><img src="sell-ad-125x125.png" /></a>';
echo $html;


我就是用這個方法來輸出 125x125 廣告的, 因為它直觀可靠, 處理方便. 但是如果你希望對頁面做靜態(tài)化, 建議選用 JS 隨機排序的方法.

在前端處理
在后端按原有循序輸出, 在頁面通過 JavaScript 重新排序. 假設(shè)頁面輸出廣告區(qū)域的 HTML 片段如下.

復制代碼 代碼如下:


<div>
<a href="#"><img src="ad-125x125.png" /></a>
<a href="#"><img src="ad-125x125.png" /></a>
<a href="#"><img src="ad-125x125.png" /></a>
<a href="#"><img src="ad-125x125.png" /></a>
</div>


我們可以通過 JS 來對廣告進行重新排序. 參考代碼如下:

復制代碼 代碼如下:


<div>
<a href="#"><img src="ad-125x125.png" /></a>
<a href="#"><img src="ad-125x125.png" /></a>
<a href="#"><img src="ad-125x125.png" /></a>
<a href="#"><img src="ad-125x125.png" /></a>
</div>
<div>
</div>

<script type="text/javascript">
//<![CDATA[

var source = document.getElementById('ads');
var target = document.getElementById('random-ads');
var ads = source.getElementsByTagName('a');

// 下標數(shù)組
var arr = new Array();
for(var i=0; i<ads.length; i++) {
arr[i] = i;
}

// 隨機排序
function randomSort(a, b){
var tmp = parseInt((Math.random() + 0.5), 10);
return tmp ? a-b : b-a;
}

// 將老的廣告區(qū)的節(jié)點隨機插放到新的廣告區(qū)
arr.sort(randomSort);
for(var i=0; i<arr.length; i++) {
target.appendChild(ads[arr[i]].cloneNode(true));
}

// 顯示新的廣告區(qū)和移除老的廣告區(qū)
source.parentNode.removeChild(source);
target.style.display = 'block';

//]]>
</script>


如果有如同方法 1 那樣的擴展需求, 將空廣告位顯示在最后, 且顯示廣告招租鏈接, 該如何處理? 這個當作課后習題吧...
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 波密县| 天全县| 平塘县| 柳州市| 砀山县| 湖口县| 阜平县| 龙陵县| 朝阳市| 桐梓县| 峨山| 仪陇县| 陆河县| 平武县| 丁青县| 会宁县| 方山县| 上虞市| 延庆县| 县级市| 枝江市| 广德县| 华安县| 徐汇区| 渭源县| 柳河县| 唐山市| 应城市| 鞍山市| 新郑市| 安丘市| 神农架林区| 玛多县| 五家渠市| 富裕县| 扶余县| 珠海市| 漠河县| 六盘水市| 桐乡市| 新化县|