php标签云的实现代码


Posted in PHP onOctober 10, 2012

数据库中,存放文章的表中有“Tag”字段,用来存放标签。标签之间用“,”分隔。比如“PHP,VB,随笔”。
下面的实现代码,将标签从数据库中搜出来,并格式化处理,使其以出现的次数为依据显示出不同大小的文字连接。
其中的细节,不做解释了!
观念陈、方法笨、效率低的标签云的实现代码如下:

/** 
* WNiaoBlog Tag Template ShowTag 
* 
* @package WNiaoBlog 
* 
* @subpackage Tag 
*/ 
//Connect the database 
//include('../include/config.php'); 
/** 
* CountTag() - Statistics labels appear the number,and the data to be stored in the two array 
* 
* GetTag() - Access the Tag's Labels from the database 
*/ 
function CountTag($String){ 
$TagString = $String; 
//echo $TagString." 
"; 
$Tags = explode(",",$TagString); 
$n = 1; 
$i = 0; 
$Continue = TRUE; 
//echo $Tags[1]." 
"; 
//in case no-label's article 
while($Tags[$n] OR $Tags[++$n] OR $Tags[++$n] ){ 
$EachTag = $Tags[$n++]; 
//echo $EachTag." 
"; 
$Continue = TRUE; 
for($i=0;$Continue;$i++){ 
if( $EachTagStr[$i][0] ) { 
if( $EachTagStr[$i][0] == $EachTag ){ 
$EachTagStr[$i][1]++; 
$Continue = FALSE; 
} 
else { 
if( $EachTagStr[$i+1][0] ) $Continue = TRUE; 
else { 
$EachTagStr[$i+1][0] = $EachTag; 
$EachTagStr[$i+1][1] = 1; 
$Continue = FALSE; 
} 
} 
} else { //initialize the array $EachTagStr[][] 
$EachTagStr[$i][0] = $EachTag; 
$EachTagStr[$i][1] = 1; 
$Continue = FALSE; 
} 
} 
} 
return $EachTagStr; 
} 
function ShowTag($Row,$ablink){ 
$i = 0; 
while($Row[$i][0]){ 
$EachTag = $Row[$i][0]; 
$EachCount = $Row[$i][1]; 
$Size = SetSize($EachCount); 
echo " < a style='color:BLUE ; font-size:".$Size." ' onMouseOver=this.style.color='#900000' onMouseOut=this.style.color='BLUE' href='".$ablink."tag?tag=".$EachTag."' target='_self' > ".$EachTag."(".$EachCount.")"." "; 
$i++; 
} 
} 
function GetTag(){ 
$QuerySet = mysql_query("select * from article"); 
while($Row = mysql_fetch_array($QuerySet)){ 
$Tag = $Row['tag']; 
$TagString = $TagString.",".$Tag; 
} 
return $TagString; 
} 
function SetSize($Size){ 
$Size += 10; 
if($Size > 30) 
$Size = 30; 
return $Size; 
} 
//Go 
echo " 
"; 
echo "标签云"; 
$String = GetTag(); 
$Row = CountTag($String); 
ShowTag($Row,$ablink); 
echo " 
"; 
?>

OK,DONE!
PHP 相关文章推荐
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
php数据库抽象层 PDO
May 07 PHP
php 字符串替换的方法
Jan 10 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
PHP整数取余返回负数的相关解决方法
May 15 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
域名和cookie问题(域名后缀)
Oct 10 #PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 #PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 #PHP
php排序算法(冒泡排序,快速排序)
Oct 09 #PHP
php全排列递归算法代码
Oct 09 #PHP
php列出一个目录下的所有文件的代码
Oct 09 #PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 #PHP
You might like
怎样辨别一杯好咖啡
2021/03/03 新手入门
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
htm调用JS代码
2007/03/15 Javascript
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
python实现简单颜色识别程序
2020/02/19 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
个性大学生自我评价
2013/12/04 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
聚美优品广告词改编
2014/03/14 职场文书
物业管理委托协议(2篇)
2014/09/23 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
Golang日志包的使用
2022/04/20 Golang