PHP实现的多彩标签效果代码分享


Posted in PHP onAugust 21, 2014

目前,大家的博客左侧通常加上一个漂亮的多彩标记,也想给自己的小站加一下这个小功能。

可惜已经再不再是使用WordPress的时候那么方便了,使用WordPress的朋友们直接使用现成的插件,鼠标点点就可以加上这个炫彩的功能。小站程序是自个写的,要加这么一个功能还是得自己动手,就当学习吧!

首先,我分析了一下目前多彩标签的主要表现形式,主要有两点:颜色多样,大小不一。这个是多彩标签的特性,于是想到了PHP中的随机函数rand。直接给大小,颜色用rand随机取值就可以。

大小的随机值容易搞定,直接生成后连接单位即可

<?php

// 随机大小实例

$m = rand(20,30);

echo '<span style="font-size:'.$m.'px">随机大小</span>';

?>

生成颜色值稍微麻烦一些,因为颜色值是十六进制字符表现形式,而随机函数rand不能直接生成 0 到 F 这么用,最后直接用数组保存十六进制字符,然后随机生成鼠标下标这样也可以实现随机颜色
<?php

// 随机颜色函数

// 直接返回随机生成的色值

function getColor(){

        // 先用数组把十六进制字符保存在一个数组中

    $arr = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');

 

        // 因为颜色色值长度是6位,所以循环6次

    for($i=0;$i<6;$i++){

                // 随机生成0到15数字,然后当作数组下标取值即可

        $color .= $arr[rand(0,15)]; 

    }

 

        // 返回的时候,把#号加上

    return ‘#'.$color;

}

?>

随机大小,随机颜色搞定后剩下的都不是问题的问题了。直接取出所有标签然后去重,然后遍历数组生成HTML文本即可。

最后提点建议,毕竟PHP是服务器端,每次都rand会让服务器鸭梨不小(那些特牛的机器可以忽略不计,毕竟目前用VPS的还是众多)。我们可以在博客的标签在发生变动的时候再生成即可,比如删除,修改,增加文章产生新的标签时候我们再去生成多彩标签的HTML文本。最后这些生成的多彩签HTML没必要存进数据库,直接保存在在一个文件里,然后include即可。

目前,我的小站就是这么实现的。有空,我再介绍JavaScript实现多彩标签,原理也差不多一样,只不过是JavaScript是客户端行为,不用担心服务器端的鸭梨,而且JavaScript交互性比较好,可以制作出具有动画效果的云标签。

PHP 相关文章推荐
php 常用字符串函数总结
Mar 15 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
PHP常用编译参数中文说明
Sep 27 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
Dec 22 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
浅析Yii2缓存的使用
May 10 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 #PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 #PHP
个人写的PHP验证码生成类分享
Aug 21 #PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 #PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 #PHP
ThinkPHP登录功能的实现方法
Aug 20 #PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 #PHP
You might like
帅气的琦玉老师
2020/03/02 日漫
星际流派综述
2020/03/04 星际争霸
php 各种应用乱码问题的解决方法
2010/05/09 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
实例详解vue中的$root和$parent
2019/04/29 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
一个超级简单的python web程序
2014/09/11 Python
理解Python垃圾回收机制
2016/02/12 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Django开发中的日志输出的方法
2018/07/02 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
python里dict变成list实例方法
2019/06/26 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
python实现交并比IOU教程
2020/04/16 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
中专毕业自我鉴定
2013/10/16 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
Python requests用法和django后台处理详解
2022/03/19 Python
MySQL GTID复制的具体使用
2022/05/20 MySQL