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
Nov 08 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
在项目中寻找代码的坏命名
Jul 14 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
PHP截取指定图片大小的方法
Dec 10 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
php 自定义错误日志实例详解
Nov 12 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
Mar 25 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 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
理解和运用PHP中的多态性[译]
2011/08/02 PHP
php微信开发接入
2016/08/27 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
js DOM模型操作
2009/12/28 Javascript
js+csss实现的一个带复选框的下拉框
2014/09/29 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
python实现按首字母分类查找功能
2019/10/31 Python
Python numpy数组转置与轴变换
2019/11/15 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
python中time、datetime模块的使用
2020/12/14 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
法国时尚童装网站:Melijoe
2016/08/10 全球购物
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
工艺工程师工作职责
2013/11/23 职场文书