原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/3724.html

关键字:网站灯笼 春节灯笼 网站节日灯笼

因为之前我在网上找到了一个网站灯笼效果的CSS源码,这源码是使用CSS重画两个灯笼的样式出来,然后再灯笼上显示节日,但是使用起来有些麻烦,因为要不停的修改网站后台或源文件,我就在想,可不可以通过PHP来获取节日日期,并且自动显示,通过几天的折腾,也完整折腾出来源码了,在这里要感谢深圳的邱斌兄弟,是他给了我一些指导和耐心的帮忙调试错误。写出来源码很简单,但是因为编写源码的环境改变了,所以出现了一些低级的错误。

1、PHP中括号()出错,因为在写 jieri_date()函数的时候,调用了一个get_yunxiao()的函数,但是我却错误的把后边的括号写成全角字符了

2、shell中在curl的时候,地址中的&符号需要用\进行转义,我就是因为没有对符号进行转义,调试了一整天

3、PHP读取shell脚本生成日期模块的调试出错

还好,现在这些问题都解决了,因为我以前是在Centos桌面里写源码,所以没有出现过这样的低级错误,但是现在换成Windows7下用phpstorm来写,但是在输入法切换上却出现了这样的低级错误,白白浪费了几天的时间来调试错误。

言归正传,现在来演示达到效果需要的几步工作。

1、注册聚合数据平台,使用 http://v.juhe.cn/calendar/year?year=2018&key=您申请的appKey 来获取当年节日时间,我们这里需要获取非固定的节日时间,例如:春节、元宵、端午、中秋等农历节日,像国庆、元旦、圣诞、情人等固定新历时间的不需要。

2、准备好phpstorm和UltraEdit编辑器

3、先把shell脚本保存为.sh后缀的文件上传到服务器/home/目录

4、下载你网站目录中的functions.php和header.php两个源文件到本地,使用phpstorm或UltraEdit打开,然后把以下的源码复制到functions.php中的相关位置,然后在header.php相关位置中添加 这一句来进行调用即可。

5、将functions.php和header.php两个源文件上传到网站目录中覆盖原文件即可。

6、演示:https://jiayu.mybabya.com/jieri.php

SHELL源码

#!/usr/bin/env bash

# !/bin/bash

############################################################################################################################################

#

# This is a lottery number automatic generation tool

# Autor: RucLinux

# Web: https://www.myzhenai.com.cn/ https://www.myzhenai.com/ https://mangshe.python.hn.cn/ https://jiayu.mybabya.com/

#

#

#############################################################################################################################################

var=$(date +%Y)

fen=$(curl -s http://v.juhe.cn/calendar/year?year=$var\&key=youappKey | awk -F "[" '{print $2}' | awk -F "]" '{print $1}' | sed 's/\\//g' | sed 's/\"//g' | sed 's/}\,/}/g' | sed 's/\,/\": /g' | sed 's/startday:/\"/g' | sed 's/}/\",\\n/g' | sed "s/name:/\"/g" | sed "s/{/ /g" | sed '/^[[:space:]]*$/d')

echo -e "{" > /var/www/jieri.log

echo -e "${fen}" >> /var/www/log

echo -e "}" >> /var/www/jieri.log

注:这里有几点需要说明

1、youappKey这个一定要替换成你在聚合数据上申请的免费固定key,为什么要使用shell来获取这个接口数据呢,因为免费版本的1个月只有1000次免费使用,如果在php里调用这个接口的话,那么将很快就超出次数了。

2、echo -e “${fen}” 这里必须要使用双引号引住

3、将上边的源码保存为.sh文件,然后在crond里设置成每月运行即可

/*# This is a festival code automatic generation tool

# Autor: RucLinux # Web: https://www.myzhenai.com.cn/ https://www.myzhenai.com/ https://mangshe.python.hn.cn/ https://jiayu.mybabya.com/

*/

/** 输出包含日期的css代码 $rixiid 变量是春节、端午、元宵、中秋等中文*/

function CSS_code($rixiid)

{

$cssid = <<

$rixiid
快乐

.deng-box {

position: fixed;

top: -30px;

left: 220px;

z-index: 9999;

pointer-events: none;

}

.deng-box1 {

position: fixed;

top: -30px;

right: 222px;

z-index: 9999;

pointer-events: none;

}

.deng-box1 .deng {

position: relative;

width: 120px;

height: 90px;

margin: 50px;

background: #d8000f;

background: rgba(216, 0, 15, 0.8);

border-radius: 50% 50%;

-webkit-transform-origin: 50% -100px;

-webkit-animation: swing 5s infinite ease-in-out;

box-shadow: -5px 5px 30px 4px rgba(252, 144, 61, 1);

}

.deng {

position: relative;

width: 120px;

height: 90px;

margin: 50px;

background: #d8000f;

background: rgba(216, 0, 15, 0.8);

border-radius: 50% 50%;

-webkit-transform-origin: 50% -100px;

-webkit-animation: swing 3s infinite ease-in-out;

box-shadow: -5px 5px 50px 4px rgba(250, 108, 0, 1);

}

.deng-a {

width: 100px;

height: 90px;

background: #d8000f;

background: rgba(216, 0, 15, 0.1);

margin: 12px 8px 8px 10px;

border-radius: 50% 50%;

border: 2px solid #dc8f03;

}

.deng-b {

width: 45px;

height: 90px;

background: #d8000f;

background: rgba(216, 0, 15, 0.1);

margin: -2px 8px 8px 26px;

border-radius: 50% 50%;

border: 2px solid #dc8f03;

}

.xian {

position: absolute;

top: -20px;

left: 60px;

width: 2px;

height: 20px;

background: #dc8f03;

}

.shui-a {

position: relative;

width: 5px;

height: 20px;

margin: -5px 0 0 59px;

-webkit-animation: swing 4s infinite ease-in-out;

-webkit-transform-origin: 50% -45px;

background: #ffa500;

border-radius: 0 0 5px 5px;

}

.shui-b {

position: absolute;

top: 14px;

left: -2px;

width: 10px;

height: 10px;

background: #dc8f03;

border-radius: 50%;

}

.shui-c {

position: absolute;

top: 18px;

left: -2px;

width: 10px;

height: 35px;

background: #ffa500;

border-radius: 0 0 0 5px;

}

.deng:before {

position: absolute;

top: -7px;

left: 29px;

height: 12px;

width: 60px;

content: " ";

display: block;

z-index: 999;

border-radius: 5px 5px 0 0;

border: solid 1px #dc8f03;

background: #ffa500;

background: linear-gradient(to right, #dc8f03, #ffa500, #dc8f03, #ffa500, #dc8f03);

}

.deng:after {

position: absolute;

bottom: -7px;

left: 10px;

height: 12px;

width: 60px;

content: " ";

display: block;

margin-left: 20px;

border-radius: 0 0 5px 5px;

border: solid 1px #dc8f03;

background: #ffa500;

background: linear-gradient(to right, #dc8f03, #ffa500, #dc8f03, #ffa500, #dc8f03);

}

.deng-t {

font-family: 华文行楷,Arial,Lucida Grande,Tahoma,sans-serif;

font-size: 1.5rem;

color: #ffa500;

font-weight: bold;

line-height: 42px;

text-align: center;

width: 25px;

margin: 0 auto;

}

.night .deng-t,

.night .deng-box,

.night .deng-box1 {

background: transparent !important;

}

@-moz-keyframes swing {

0% {

-moz-transform: rotate(-10deg)

}

50% {

-moz-transform: rotate(10deg)

}

100% {

-moz-transform: rotate(-10deg)

}

}

@-webkit-keyframes swing {

0% {

-webkit-transform: rotate(-10deg)

}

50% {

-webkit-transform: rotate(10deg)

}

100% {

-webkit-transform: rotate(-10deg)

}

}

Kof;

return $cssid;

}

/** 这是将所有字符串编码转换成UTF-8 */

function strToUtf8($str){

$encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));

if($encode == 'UTF-8'){

return $str;

}else{

return mb_convert_encoding($str, 'UTF-8', $encode);

}

}

/** 判断春节、中秋、端午等节日时间*/

function panduan($jie)

{

$file = "jieri.log";

if (file_exists($file)){

$fp = file_get_contents($file);

$hang = strToUtf8($fp);

if (strpos($hang,$jie) !== false){

$left = "\": \"";

$rght = "\",";

$th = strpos($hang,$jie,0);

$t = strpos($hang,$left,$th);

$tx = strpos($hang,$rght,$t);

$bt = str_replace("\": \"","",substr($hang,$t,$tx-$t));

}

}

return $bt;

}

/**

* +----------------------------------------------------------

* 功能:计算两个日期相差 年 月 日

* +----------------------------------------------------------

* @param date $date1 起始日期

* @param date $date2 截止日期日期

* +----------------------------------------------------------

* @return array

* +----------------------------------------------------------

*/

function DiffDate($date1, $date2)

{

if (strtotime($date1) > strtotime($date2)) {

$ymd = $date2;

$date2 = $date1;

$date1 = $ymd;

}

list($y1, $m1, $d1) = explode('-', $date1);

list($y2, $m2, $d2) = explode('-', $date2);

$y = $m = $d = $_m = 0;

$math = ($y2 - $y1) * 12 + $m2 - $m1;

$y = round($math / 12);

$m = intval($math % 12);

$d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400;

if ($d < 0) {

$m -= 1;

$d += date('j', mktime(0, 0, 0, $m2, 0, $y2));

}

$m < 0 && $y -= 1;

return array($y, $m, $d);

}

/** 判断两个时间相差多少天 */

function time_difference($time1, $time2)

{

/** time1是小的时间。time2是大的时间,用time1-time2 */

$today = date_create($time1);

$zhongqiu = date_create($time2);

$diff = date_diff($today, $zhongqiu);

$dayto = $diff->format("%a");

return $dayto;

}

/** 计算元宵节日期,需要提供除夕时,在这个时间上加15天就是元宵节 */

function get_yunxiao()

{

$date = date_create(panduan("除夕"));

$yun = date_add($date, date_interval_create_from_date_string("15 days"));

$yunxiao = date_format($yun, "Y-n-d");

return $yunxiao;

}

/** 输出节日祝福信息 */

function jie_date()

{

$dd = date("Y-n-d");

$dc = date("Y-n-d", strtotime("+1 day"));

if (time_difference(date("Y") . "-1-1", $dc) <= 2 || time_difference(date("Y") . "-1-1", date("Y-n-d")) <= 4) {

echo CSS_code("新年");

}

if (time_difference(date("Y") . "-10-1", $dc) <= 2 || time_difference(date("Y") . "-10-1", date("Y-n-d")) <= 8) {

echo CSS_code("国庆");

}

if (time_difference(date("Y") . "-2-14", $dc) <= 2 || time_difference(date("Y") . "-2-14", date("Y-n-d")) <= 2) {

echo CSS_code("情人");

}

if (time_difference(date("Y") . "-3-1", $dc) <= 2 || time_difference(date("Y") . "-3-1", date("Y-n-d")) <= 2) {

echo CSS_code("开心");

}

if (time_difference(date("Y") . "-12-24", $dc) <= 2 || time_difference(date("Y") . "-12-24", date("Y-n-d")) <= 2) {

echo CSS_code("圣诞");

}

if (time_difference($dd, panduan("春节")) <= 7 || time_difference(panduan("春节"), $dd) <= 7) {

echo Css_code("春节");

}

if (time_difference($dd, panduan("中秋")) <= 3 || time_difference(panduan("中秋"), $dd) <= 3) {

echo Css_code("中秋");

}

if (time_difference($dd, panduan("端午")) <= 3 || time_difference(panduan("端午"), $dd) <= 3) {

echo Css_code("端午");

}

if (time_difference($dd, get_yunxiao()) <= 2 || time_difference(get_yunxiao(), $dd) <= 2) {

echo Css_code("元宵");

}

}

sicnature ---------------------------------------------------------------------

Your current IP address is: 114.99.12.152

Your IP address location: 安徽省安庆市电信

Your IP address country and region: 中国

Your current browser is:

Your current system is:

Original content, please indicate the source:

同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog

sicnature ---------------------------------------------------------------------

Welcome to reprint. Please indicate the source https://www.myzhenai.com/post/3724.html

php一年节日,自动获取节日日期并显示灯笼效果的PHP源码相关推荐

  1. EXCELL自动获取当前时间并显示当前时间是今年的第几周

    早先发表了一篇文章介绍如何获取输入日期是当年的第几周,这次增加一个自动获取系统日期的功能. 1,打开EXCEL表格. 2,在要显示日期的地方输入=TODAY()   这个地方将会显示系统日期. 3,在 ...

  2. 使用python多线程获取代理IP(代理IP池,附源码)

    @[TOC]使用python多线程获取代理IP(代理IP池,附源码) 代理IP池 都说现在是大数据的时代,大多数的厂商会特别的注重自己家的数据安全问题,但同时,也有着许多的行业是需要大数据来做支撑的, ...

  3. Arduino毕业设计——基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码)——自动驾驶小车控制系统

    基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Arduino+PID+AI的自动驾驶小车控制系统设计与实现,文章末尾附有本毕业设计的 ...

  4. AxureRP 实战(四)如何自动获取电脑日期和时间

    我们在做页面交互设计时,如何自动获取电脑的日期和时间呢?像下图这样,让设计的产品更有真实感: 以上图的日期时间格式为例:"YYYY-MM-DD hh:mm:ss" 首先,拖入文本标 ...

  5. 游戏热血江湖 满线自动查询器制作游戏分析脱壳与查询器源码分享

    热血江湖满线自动查询器制作 N久没玩网游,某天心血来潮想去了热血江湖,如是用以前的账号,尝试着无聊一下,结果发现热血江湖现在竟然异常火爆,服务器满线,尝试着登录的几个大号都满线,不只知道啥时候能登录, ...

  6. Python数据分析实战【六】:用Python实现自动发送邮件和发送钉钉消息【文末源码地址】

    目录 发送邮件源码 发送钉钉消息源码 源码地址 本文可以学习到以下内容: 使用requests库发送钉钉消息 使用email和smtplib库发送邮件 使用163邮箱服务,自动发送邮件及附件 发送邮件 ...

  7. Python 代码打造小 AI ,罗列博文笔记总索引列表,自动生成“我的博文笔记总索引”博文 HTML5 源码文本

    Python 代码打造小 AI ,获取笔记信息,自动阅读量降序编排索引列表,生成 HTML5 源码文本. [学习的细节是欢悦的历程] Python 官网:https://www.python.org/ ...

  8. 使用RNN神经网络自动生成名字 (不使用深度学习框架,源码)

    本文讲解在不使用深度学习框架的情况下,构建一个基本的RNN神经网络来进行名字自动生成.RNN模型请看下面的三张图片.本文主要讲解数据集以及输入模型的数据格式. 数据集和可执行的源码下载地址:https ...

  9. 获取含跨域网址的框架网页的源码

    前面介绍过的获取框架网页的源码的方法在针对框架中每个文档的URL都是和主网页在同一个域名(同一个网站)的情况下是不会出什么问题的,但如果框架包含的网页是别的域的话,例如以下网页:该网页含左右两个框架, ...

最新文章

  1. Xcode 6.x 上开发APP 兼容 iOS7
  2. 从零开始写javaweb框架 pdf_大学写的一个 Java Web 框架
  3. 蓝桥杯JAVA---2013---B----世纪末的星期
  4. C语言学习:snprintf()函数
  5. IIR型高斯滤波的原理及实现
  6. Crystal Ball 图标进入EXCEL后却没加载 Crystal Ball
  7. 因特尔g41显卡 linux驱动,英特尔g41显卡驱动
  8. oracle asm空间利用率,ASM磁盘组状态和使用率的监控
  9. 用友T6固定资产模块处理菜单中的项目会突然消失
  10. linux snmp 命令oid,snmpwalk命令_Linux snmpwalk命令使用详解:通过SNMP GET-NEXT类型PDU
  11. 剪贴板是计算机系统,剪贴板怎么打开,小编教你电脑剪贴板怎么打开
  12. pycharm 中 import sys 失败的原因 (python)
  13. 431 Request Header Fields Too Large 解决
  14. 在安装SVN时出现Custom action GenerateSSLKey failed: Command terminated with non-zero exit code
  15. c语言求100以内偶数和while,c语言 求1到100以内的偶数之和
  16. 河南漯河警方承认交警代司机交罚款有错-罚款-交警罚款
  17. 享元模式实例与解析实例二:共享网络设备(有外部状态)
  18. [Matlab]椭圆滤波器设计:低通、高通、带通和带阻(4)
  19. Python_一元线性回归及回归显著性
  20. 五子棋双人对战c语言课程设计,五子棋(双人对战) C语言课程设计.doc

热门文章

  1. freemarker.core.ParseException:Unexpected end of file reached
  2. 什么是重构?为什么要重构?如何重构
  3. DDD领域驱动设计-知识消化
  4. react 使用 svg_使用SVG和React.js构建日历热图
  5. 写个程序自动下载留言,没辙了:(
  6. 单极性和双极性晶体管
  7. 计算机视觉项目:手势拖拽方块和手势控制音量
  8. Android 蓝牙开发(七)hfp音频连接
  9. 宜信敏捷数据中台建设实践|分享实录
  10. XGBoost 重要参数(调参使用)