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 相关文章推荐
ASP和PHP都是可以删除自身的
Apr 09 PHP
用穿越火线快速入门php面向对象
Feb 22 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
php实现求相对时间函数
Jun 15 PHP
PHP模拟asp.net的StringBuilder类实现方法
Aug 08 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
详解thinkphp中的volist标签
Jan 15 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
laravel使用数据库测试注意事项
Apr 10 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
在PHP中利用XML技术构造远程服务(下)
2006/10/09 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
JQuery 入门实例1
2009/06/25 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
python中关于for循环的碎碎念
2017/06/30 Python
python命令行参数用法实例分析
2019/06/25 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
C++面试题目
2013/06/25 面试题
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
导航工程专业自荐信
2014/09/02 职场文书
谢师宴家长致辞
2015/07/27 职场文书
部门主管竞聘书
2015/09/15 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS