皮皮网

【福利商城源码】【avi驱动源码】【netty 启动源码】alapi网站源码_api网站源码下载

来源:dlna dmr源码 时间:2024-12-23 00:01:22

1.单元测试实践
2.新一代mount系统调用(1)——接口初探
3.想成为Java工程师有什么要求?
4.从零搭建测试公众号,网网站每天发送一句小情话(支持计算农历生日)

alapi网站源码_api网站源码下载

单元测试实践

       非常有意思的站源一段话:

       我们用得最多的基本单元测试框架是junit和testng,下面对这两个工具做个对比。源码

       通过上面的下载对比可以看出,TestNG作为Java项目的网网站单元测试框架是更有优势的,TestNG在参数化测试、站源福利商城源码依赖测试、源码套件测试、下载分组测试、网网站并发测试等方面都比Junit4强,站源同时,源码TestNG涵盖了JUnit4的下载全部功能。

       所以下面的网网站案例说明都是基于TestNG来写的。

       为方便对后面内容的站源理解,先写一个单元测试:

       这是源码一个验证rsa加解密功能的单元测试。

       TestMain是抽象出来,用于启动spring容器以及支持testng用例自动注入bean,因为启动spring容器总是很耗时的,如果我们的测试用例用不到依赖的spring bean,最好不雅启动spring容器,TestMain源码:

       这就是TestMain最好放在和工程Application类所在包相同路径下的原因,比如我的示例中TestMain和BoardServerApplication都在相同包路径下:com.allawn.athletic.board.server。

       检查TestNG插件是否存在

       插件搜索“Coverage”

       在我们的pom文件下加如下plugin配置:

       idea插件自带,带搜索插件“PIT mutation testing”,但不建议用,很难调通!

       本地开发环境

       IDE自动创建单元测试的方法(也可手动完成):

       创建后的单元测试在Maven工程的test目录下生成测试类:

       注意:如果之前没有test目录,则需要手动创建一下:

       然后再把目录设置为test目录。设置方法:file -> Project Structure -> Modules

       运行单元测试

       创建单元测试

       Maven执行的相关命令:

       如果单元测试不通过,出现如下:

       两种方式皆可运行。

       运行不通过则则会有提示

       要通过maven运行单元测试,要保证pom配置没有跳过单元测试,检查设置如下:

       IDEA可以直接生成覆盖率报告,导出来的覆盖率报告长这样:

       点击index.html即可看报告内容:

       变异测试,英文Mutation Testing,是使用变异器 (切换数学运算符,更改返回类型,删除调用等)将代码修改为不同的变异(基于变异器创建新代码),并检查单元测试是否失败。好的单元测试应该使所有突变都失败(杀死)。

       主要列出testng的测试方法,junit的测试方法请另行百度。

       异常测试是指在单元测试中应该要抛出什么异常是合理的,可以检测我们方法中指定跑出的异常,类似这种:

       如果我们有时候不想测试某些方法的单元测试,那么我们可以指定这些具体的单元测试跳过不执行,testng和junit4都支持忽略测试,testng通过@Test(enabled=false)跳过。

       指定某个单元测试方法最长执行时间,如果超时了就算失败,testng中的timeout单位是毫秒。

       套件测试是指把多个单元测试组合成一个模块,然后一起运行,avi驱动源码在套件定义中还可以通过定义组,针对相同组名的单元测试统一运行。

       为方便我们模拟单元测试的传参,testng提供了@DataProvider注解,我们可以在单元测试内设置多种参数值,单元测试会依次把入参都跑一遍。被@DataProvider修饰的方法,返回值是数组形式。

       依赖测试是指测试的方法是有依赖的,在执行的测试之前需要执行的另一测试。如果依赖的测试出现错误,所有的子测试都被忽略,且不会被标记为失败。

       TestNG支持通过多个线程并发调用一个测试接口来实现性能测试,invocationCount表示方法调用的次数,threadPoolSize表示并发线程数量,timeOut即是每次调用最大耗时时间。

       通过多线程并行调用多个测试方法,在我们套件/组测试的时候,如果使用并行测试,可以大大减少测试运行时间。

       Mock的使用场景:

       Mockito有比较简洁的API,简单易学,可读性强。从Mockito2开始,Mockito支持了很多新特性以及新注解(所以依赖mockito2.x以上版本的需要java8及以上jdk方可),使用很便捷,spring-boot-starter-test包默认内置mockito,鉴于维护性和语言新特性的支持,个人建议使用Mockito作为单元测试的mock工具。

       在有需要的地方进行mock,否则走真实方法调用。

       除了采用静态方法spy以外,还可以通过采用注解的方式:

       结果示例:

       除了@Spy注解需要如此设置,@Mock、@Captor、@InjectMocks等注解也需要。

       对整个class进行mock

       结果:

       Junit5使用手册: junit.org/junit5/docs/c...

       在Junit5中要使用Mockito,需要单独引入mockito-junit-jupiter依赖包,通过在单元测试类上加

       @ExtendWith(MockitoExtension.class)

       实现构建一个mock运行容器。

       在有需要的地方进行mock,否则走真实方法调用。

       除了采用静态方法spy以外,还可以通过采用注解的方式:

       结果示例:

       结果:

新一代mount系统调用(1)——接口初探

       本文旨在介绍新一代的mount系统调用接口的初探,具体聚焦于如何利用新的mount API挂载一个文件系统。以往的mount系统调用自Linux系统诞生以来就一直沿用,尽管内部经历了多次更新,接口保持不变。然而,以AL Viro为首的VFS团队对当前的mount系统调用存在诸多不满,决定重新设计和编写一套新的mount API,这一工作由David Howells等人主导,netty 启动源码AL Viro作为主要领导者。直到Linux版本更新到5.2后,新mount API的主要代码已被合并至主线Linux。

       新mount API的实现经历了多次迭代和修改,最终形成了一套相对稳定的设计。尽管新API的设计仍在不断完善中,但其基本框架已经较为成熟。考虑到设计持续变动的问题,作者在撰写介绍新mount API的文章时,选择了等待设计基本稳定,API被合并至Linux内核,并且不会有大的改动的时机。这样可以确保内容的准确性。

       值得注意的是,虽然新mount API的内核部分代码可以基本使用,但还有很多工作需要完成。应用层的标准库、文档以及基于新API的mount工具链尚未开发,许多文件系统也需要对自身进行相应的修改以适应新接口。此外,新mount API的卸载文件系统的API设计也有待进一步考虑。

       本系列文章的第一篇将详细讲解如何利用新mount API(fsopen、fsconfig、fsmount、move_mount)挂载XFS文件系统。以XFS为例,我们首先使用fsopen打开一个文件系统类型,然后使用fsconfig进行配置,包括挂载源和选项等。之后通过fsmount创建一个挂载实例,并使用move_mount将此实例附加到挂载点上。

       在后续的文章中,将逐步展开对新mount API的深入探讨。由于新API仍处于开发阶段,官方文档尚未完全形成,本文的解释将基于作者的理解。一切解释权以最新的上游源代码为准。

想成为Java工程师有什么要求?

       首先,你学得知识不一定就是你用的全部知识,我们除了要学习基本的知识之外,也需要去了解一下其他的知识,而这些知识就是从你所做的每一个小项目来的,当你需要使用这个知识点的时候自然的就会去学习你不会的知识

       总之就是一句话,要想学好Java,你付出多少努力就能够得到多少回报

       然后是你的一个学习问题,自己在做的时候做不出来,那就是一个问题,在做题目的时候不去思考,自己的动手敲代码的时间也是非常的少

       想要改变你的现状就得先解决这些困难,每天学习的%时间必须拿来敲代码,这样你才会拿到一个题目的时候有自己的思路,通过自己的fir函数源码思考然后把思路转为代码去实现,这才是学习Java的正确姿势

       学习Java不要把自己的思维关在一个笼子里面,有时候多跟一起学习的人或者前辈多多交流,多去吸取他们学习的方法以及在处理错误的时候思维

       在Java的学习过程中,出现异常和bug是难免的,这些虽然是你在学习道路上的绊脚石,但是这些绊脚石能够加快你的成长,让你的经验暴增

       阶段1 java语言基础

       1-1-Java基础语法

       1、第1节 java运行环境 提取码:8ax6

       2、第2节 HelloWorld案例 提取码:us3j

       3、第3节 关键字&标识符 提取码:dl

       4、第4节 常量&变量 提取码:

       5、第5节 数据类型转换 提取码:9glo

       6、第6节 运算符 提取码:ys2n

       7、第7节 方法入门 提取码:b1ib

       8、第8节 JDK9新特性-Jshell 提取码:ounw

       9、第9节 选择结构-if语句-switch语句 提取码:0d

       、第节 循环结构-for-while-do..while 提取码:k2ig

       、第节 开发工具-IDEA 提取码:i

       、第节 方法复习 提取码:ulku

       、第节 方法重载 提取码:wfkr

       、第节 数组 提取码:p8ml

       小总结:

       这个阶段我花了半个月的时间去学习,也就是个小时的时间,其中有个小时是我用来看理论的知识,另外的个小时是我用来给自己练手的,每一个知识点我都要做很多的题目,直到自己拿到题目的时候,能够把自己的思路转为代码实现

       毫无疑问,这个阶段最耗时的自然是循环结构、选择结构,因为这两个知识点对于一个初学者来说很不友好,不仅代码量增加了,逻辑思维也是很绕的,如果不保持自己的思路清晰,你就理解不了他每一步的结果

       然后就是数组,这一个阶段可以说是全新的阶段,我们可以把我们需要的数据都保存在数组里面,在这个知识点结束之后我还做了一个数组版的学生管理系统

       1-2 -面向对象和封装

       1、1_2_1__面向对象思想的概述 提取码:q

       2、1_2_1__面向对象思想的举例 提取码:lv2s

       3、1_2_1__类和对象的关系 提取码:7rs3

       4、1_2_1__类的定义 提取码:xvhx

       5、1_2_1__对象的创建及其使用 提取码:xsal

       6、1_2_1__手机类练习 提取码:lnho

       7、1_2_1__一个对象的内存图 提取码:wnaz

       8、1_2_1__两个对象使用同一个方法的内存 提取码:thet

       9、1_2_1__两个引用指向同一个对象的 提取码:3he6

       、1_2_1__使用对象类型作为方法的参 提取码:w4

       、1_2_1__使用对象类型作为方法的返 提取码:gjmn

       、1_2_1__成员变量和局部变量的区别 提取码:eqep

       、1_2_1__面向对象三大特征之封装性 提取码:zlcz

       、1_2_1__private关键字的作用及使用 提取码:4i

       、1_2_1__练习使用private关键字定义 提取码:dctu

       、kafka 源码设计1_2_1__this关键字的作用 提取码:xz

       、1_2_1__构造方法 提取码:8xkz

       、1_2_1__定义一个标准的类 提取码:opmf

       小总结:

       这一个阶段花的时间足足有一个月,时间的分配也是按照%的时间去看理论,%的时间去动手敲代码

       我觉得这个阶段每一个知识点都是特别的重要,在这个阶段我学会了什么是对象,学会了如何面向对象编程,也学会了如何使用对象编程去偷懒,把重复的事情都封装成了一个对象,交给这个对象去帮我做

       1-3-Java语言高级

       1、-常用API_1 提取码:alfe

       2、-继承与多态 提取码:h5o7

       3、-常用API第二部分 提取码:olnf

       4、-集合 提取码:ca

       5、-异常与多线程 提取码:mu

       6、-File类与IO流 提取码:4bpt

       7、-网络编程 提取码:s5ks

       8、-JDK8新特性 提取码:jnbj

       9、-基础加强 提取码:1ngz

       、-MySQL 提取码:y4

       、 -JDBC 提取码:q7

       小总结:

       是的,这个阶段我花了两个月,一个月学完JavaSE,然后一个月学完了MySQL跟JDBC,话说这个阶段是最难的,也是最重要的,这个阶段的东西你学不懂就代表你后面的知识都处于一个危机边缘

       在这个阶段我做了四个小项目,和一些零零碎碎的练习题,代码加起来应该有三四万行了吧;其中有三个项目是学生管理系统,我从数组版把它改为了集合版,然后又改为了IO版,最后改为了MySQL版;然后还做了一个ATM小型的桌面程序

       然后个人感觉我在这个阶段学得是比较扎实的,期间还去看了许多的集合的源码,虽然有的看不懂,但是对于我一个初学者来说已经很了不起了

       阶段2 JavaWeb+旅游网

       小总结:

       这个阶段的知识非常多,我不仅学习了前端三剑客,还学了JavaWEB、JSP、JSTL、EL,然后为了做一个项目去练手,还学习了Redis和Maven

       这个阶段我花了两个月的时间,包括跟着做好这个项目,因为我前面的基础部分学得比较扎实吧,所以感觉这部分比较简单,难点就是JavaWEB的过滤器,这个知识点我花的时间比较多

       然后就是大概的从面向对象编程转为了面向接口编程了

        HTML和CSS

       1、第1节 概念介绍 提取码:dal6

       2、第2节 基本标签 提取码:4uyq

       3、第3节 表单标签 提取码:h1ok

       4、第4节 CSS概述 提取码:ubyx

       5、第5节 CSS_选择器 提取码:zep7

       6、第6节 CSS属性 提取码:9l4h

       7、第7节 CSS_案例-注册页面 提取码:onc6

        JavaScript

       1、 JavaScript_简介 提取码:2efk

       2、 JavaScript基础语法 提取码:bl

       3、 JavaScript运算符 提取码:v9sh

       4、 JavaScript特殊语法 提取码:yj6p

       5、 JavaScript_语法_流程控制语 提取码:tx9j

       6、 JavaScript_对象 提取码:df4q

       7、 DOM和事件的简单学习 提取码:ljt5

       8、 BOM对象 提取码:jwwy

       9、 DOM对象 提取码:ukah

       、JavaScirpt中的事件 提取码:ab1w

        BootStrap

       1、 快速入门 提取码:5jhm

       2、Bootstrap_栅格系统 提取码:1xuu

       3、Bootstrap_全局CSS样式 提取码:fjka

       4、Bootstrap_组件和插件 提取码:g5wp

       5、案例_旅游网 提取码:jxy3

        XML

       1、 xml基础 提取码:jose

       2、 xml_约束 提取码:q0xr

       3、 xml_解析 提取码:bbsn

        Tomcat

       1、web相关概念 提取码:p2az

       2、 tomcat基本操作 提取码:zqqx

       3、 tomcat_部署项目 提取码:i4a2

       -Servlet和HTTP请求协议

       1、Servlet_快速入门 提取码:ah8k

       2、Servlet_生命周期方法 提取码:w7t9

       3、Servlet_3.0注解配置 提取码:d8zy

       4、 IDEA与tomcat相关配置 提取码:5rvl

       5、 Servlet_体系结构与urlpartten配置 提取码:qf3i

       6、 HTTP请求协议 提取码:5f7v

        -Request和Respons

       1、 Request原理和继承体系 提取码:3hxr

       2、 Request_获取请求数据 提取码:oxl7

       3、 请求转发和request共享数据 提取码:9xbq

       4、 Request_获取ServletContext 提取码:yfaz

       5、 request登录案例 提取码:owgj

       6、 HTTP响应协议 提取码:xs8k

       7、 response之重定向 提取码:i8de

       8、 response之相对路径和绝对路径 提取码:6p8q

       9、 response之输出数据 提取码:fe

       、 response之验证码 提取码:uy

       、 ServletContext对象 提取码:yopc

       、 文件下载 提取码:szv9

       -Cookie和Session

       1、第1节 Cookie快速入门 提取码:ncss

       2、第2节 Cookie_细节 提取码:la7v

       3、第3节 Cookie案例 提取码:mamn

       4、第4节 JSP改造Cookie案例 提取码:fpkd

       5、第5节 Session快速入门 提取码:0tyf

       6、第6节 Session细节 提取码:obu1

       7、第7节 Session之验证码案例 提取码:fxtt

       -JSP,EL和JSTL

       1、第1节 JSP基础语法 提取码:7rvw

       2、第2节 MVC 提取码:ywmz

       3、第3节 EL介绍和运算符 提取码:5gxf

       4、第4节 EL获取域中存储的数据 提取码:yha0

       5、第5节 JSTL常用标签 提取码:mr

       -综合案例(用户信息)

       1、第1节 登录功能 提取码:d7v4

       2、第2节 添加删除修改功能 提取码:df

       3、第3节 删除选中功能 提取码:jhlx

       4、第4节 分页查询功能 提取码:8mxb

       5、第5节 复杂条件查询功能 提取码:qj8m

       -Filter和Listener

       1、第1节 Filter快速入门 提取码:7qrm

       2、第2节 Filter细节 提取码:s2w9

       3、第3节 Filter案例 提取码:fs

       4、第4节 监听器 提取码:kjwy

       -Jquery

       1、第1节 JQuery基础 提取码:0uj1

       2、第2节 JQuery选择器 提取码:ow

       3、第3节 Jquery基础案例 提取码:5u3t

       4、第4节 JQuery动画和遍历 提取码:ut

       5、第5节 JQuery事件绑定和切换 提取码:e5sv

       6、第6节 Jquery高级案例 提取码:ytj4

       -Ajax和JSON

       1、第1节 原生JS方式实现Ajax 提取码:xh

       2、第2节 JQuery方式实现Ajax 提取码:woaa

       3、第3节 JSON基础语法 提取码:pqhj

       4、第4节 JSON_解析器 提取码:zbzx

       -Redis

       1、第1节 Redis环境搭建 提取码:poob

       2、第2节 Redis命令操作 提取码:bq6d

       3、第3节 Redis持久化 提取码:0x4x

       4、第4节 Jedis代码操作 提取码:bon3

       5、第5节 Jedis连接池 提取码:hu0n

       6、第6节 redis案例 提取码:cosn

       -Maven基础

       1、第1节 基本概念 提取码:4fok

       2、第2节 maven的安装和仓库种类 提取码:gw1r

       3、第3节 maven标准目录结构和常用命令 提取码:3jn7

       4、第4节 maven生命周期和概念模型图 提取码:oqrb

       5、第5节 使用骨架创建maven的java工程 提取码:kp

       6、第6节 maven工程servlet实例 提取码:xdmw

       -旅游网

       1、 准备工作 提取码:uprl

       2、 注册功能 提取码:9pf5

       3、 登陆和退出功能 提取码:0hkk

       4、 BaseServlet抽取 提取码:qswt

       5、 分类数据展示功能 提取码:n

       6、 旅游线路分页展示分页展示 提取码:o6v6

       7、 旅游线路查询 提取码:pzjb

       8、 旅游线路详情 提取码:wtke

       9、 旅游线路收藏 提取码:

       阶段三:基本框架SSM

       小总结:

       这个阶段相对于JavaWEB来说还是比较简单的,少了很多的代码量,但是却多了很多的配置,稍微不注意就会把这些配置给搞错,期间出现了好几次注入bean失败的错误,这是我最不能够容忍的,同样的错误居然出现了好几次,而且都是没有给service加上@Service这个注解导致的;所以,在同一个地方跌倒多次是最不应该的,以后一定的加强注意了

       在此期间,我还把JavaWEB做的那个项目改为了SSM版的,在改的过程中才体会到这些代码真的是很浪费,之前一个一个参数的接收,现在只需要一个对象就可以接收到了,而且更加的让我明白面向接口编程的含义了

       阶段3 1.Mybatis

       1、.Mybatis课程介绍及环境搭建 提取码:6zwc

       2、.Mybatis入门案例 提取码:2aoi

       3、.自定义Mybatis框架 提取码:r9wc

       4、.自定义Mybatis框架基于注解开发 提取码:1jzg

       5、.使用Mybatis完成CRUD 提取码:d4b7

       6、.使用Mybatis完成DAO层的开发 提取码:dzvr

       7、.Mybatis的连接池及事务 提取码:ij3e

       8、.动态SQL 提取码:yiys

       9、.Mybatis的多表操作 提取码:dt9w

       、.JNDI扩展知识 提取码:u5fx

       、.Mybatis的缓存 提取码:ng

       、.Mybatis注解开发 提取码:yh6z

       阶段3 2.Spring

       1、.Spring框架简介 提取码:va1x

       2、.程序间耦合 提取码:s8cg

       3、.Spring的 IOC 和 DI 提取码:of

       4、.Spring的常用注解 提取码:tfw5

       5、.基于XML的IOC的案例1 提取码:1gf9

       6、.Spring的新注解 提取码:pjzs

       7、.银行转账案例 提取码:um2b

       8、.面向切面编程 AOP 提取码:4tv2

       9、.JdbcTemplate的基本使用 提取码:vjxx

       、.Spring中事务控制 提取码:rx3v

       阶段3 3.SpringMVC

       1、.SpringMVC概述及入门案例 提取码:e2ty

       2、.参数绑定及自定义类型转换 提取码:g

       3、.SpringMVC常用注解 提取码:emrc

       4、.SpringMVC返回值类型及响应数据类型 提取码:bd9t

       5、.文件上传 提取码:pzy7

       6、.异常处理及拦截器 提取码:7a2y

       7、.SSM整合案例 提取码:lzzd

       阶段四:高级框架

       小总结:

       这个阶段可不止Spring Boot,还有springcloud,springsecurity等等这些框架,就不一一列出来了,资料网上一大堆

       学了Spring Boot之后你才会发现,SSM是多么的麻烦,Spring Boot为不仅为我们减少了代码量,还为我们减少了很多的配置,采用注解的方式

       当然,这么智能的框架,我能不把做的项目改为Spring Boot版本吗?

       阶段4 4.Spring Boot

       1、.spring boot 介绍 提取码:fzi8

       2、.spring boot 入门 提取码:bp

       3、.spring boot 原理分析 提取码:8yer

       4、.spring boot 配置文件 提取码:wvoc

       5、.spring boot 集成 提取码:ywin

       阶段4 5.Git

       1、.Git简介及安装使用 提取码:a0kx

       2、.连接远程仓库 提取码:kziq

       3、.Git分支 提取码:5rm2

       原文链接:网页链接

从零搭建测试公众号,每天发送一句小情话(支持计算农历生日)

       已有开源源码: gitee.com/fushentong/sa...

       支持事项:

       通过微信公众号给指定对象(举例:你的男/女朋友)每天发送指定内容;

       内容包含:

       同时,支持字体颜色自定义;

       暂时不一定支持事项:(不是不能做只是作者用不到,有需要的小伙伴可以评论区留言,需要的多则下一期完善,有好的解决思路的大佬也欢迎评论区留言) 农历的部分月份 和 阳历不在同一年, 农历部分情况下可能出现闰某月

       一、整体框架

       二、准备需要的东西(网上均有免费可用的体验版)

       总览:

       接下来带大家一步步研究怎么获取这些账号

       第一步:公众号测试平台的注册并配置

       从微信官方文档中,找到接口测试号,并申请

       申请测试公众号后,可用获得独有的AppID 和 appsecret。

       这两个值的作用就是为了在程序中向微信平台验证身份。

       就像是 用户名和密码一样。

       同时,用你自己的微信 和 你想要发送信息的对象的微信,扫描你的公众平台上的二维码。获得对应用户的微信号。

       这个微信号,就像是我们的身份证号一样,是独一无号的。

       有了微信号,你才能告诉微信平台,这条消息该发给谁。

       同时设置消息模板,

       最终发送给到 手机微信上的消息,也就是设置的这个格式的。

       同时在程序里面返回数据,也要包含模板中的数据

       参考:

       { { first.DATA}} 今天天气:{ { thing.DATA}} 今天温度:{ { thing.DATA}} 和xxx已经恋爱了:{ { thing.DATA}} 距离xxx生日还有:{ { thing.DATA}} 送你一句土味情话:{ { remark.DATA}} 送你一句诗词:{ { remark.DATA}} 送你一句脑洞鸡汤:{ { remark.DATA}}

       第二步:准备天气API

       在搜索引擎,直接搜索“免费天气API”就能找到许多。

       小编采用的是图中所框选的。

       进去后可以看到有一部分是免费的的

       免费的当然会有一些限制,但对于我们自己玩,完全足够了。

       注册后,你就会得到我们需要的两个东西,

       天气API平台的appID 和 appSecret

       第三步:准备情话API

       同样的步骤,我们在搜索引擎搜索“免费土味情话API”。

       选择其中一个,小编选择的是ALAPI。

       注册后,你就要可以在你的控制台页面找到你的token

       (token的作用也是用于在请求数据的时候标识你的身份,不熟悉的小伙伴记下这个值就好了,后面会用到。)

       第四步:(可选,不一定要)

       在自己电脑上安装XAMPP方便调试,确定调试好了再上传。

       把文末下载地址中的index.php 文件和Lunar.php文件放入XAMPP安装目录的htdocs目录下

       (XAMPP使用方法自行搜索,有障碍的小伙伴也可以评论区留言。)

       第五步:免费虚拟主机+免费子级域名

       自行选择,各个云服务厂商也有几个月免费体验那种。

       推荐: freehost.cc

       第六步:定时触发程序

       同样搜索免费网页监控程序,找一个自己觉得还行的。

       (因为php脚本的原理就是,你打开网页,它就会触发执行程序,发消息给微信平台。)

       也可以不弄这个监控程序。你想要发这个信息的时候,自己在浏览器输入一次也是一样的。

       小编使用的是: monit.or.passby.me/

       至此,我们需要的环境就全部准备完毕了。

       下面开始解读程序

       三、代码主体逻辑解析

       程序已开源到gitee,可查看。(其中的部分参数需要更新为上面申请到的)

       前置:准备好相关平台数据 ,替换成我们前面申请到的

       第一步:定义一个对象,把对象的相关信息都放进去

       第二步:把需要发送的一些共用的数据先准备好

       第三步:将消息组装成自己需要的样式

       根据个人信息,计算在一起天数、当地天气、距离生日的时间。

       封装成模板格式,同时可以字体颜色可以自行调整

       字体颜色进制表:

       模板里面格式字符,是来自微信官方平台的规范:

       第四步:发送信息

       以上就是代码的主体逻辑了,其中出现的函数都在同一文件中。

       四、本地调试(如果您本地有php环境的话)

       本地调试方法可以直接使用php在命令行运行脚本,也可以使用XAMPP将gitee中的index.php发布成本地站点。浏览器输入xampp发不出的本地站点来调试。

       五、上传云服务器,并使用浏览器触发

       如果申请了虚拟主机的话,根据平台指使文档来就行。

       一般的流程是将程序文件按要求命名后,上传到虚拟主机的某个路径下,即可。

       (注意:我们这里index.php和Lunar.php一定要同时放。因为index.php中调用了Lunar.phh)

       再使用虚拟主机提供的域名或者地址,在浏览器输入地址,则会触发上传的程序文件。

       六、定时触发

       找一个免费的网站监控程序,设置成固定每天的x点钟,扫描一次上一步虚拟主机给到的域名。

       以上就大功告成了,大家有疑问可以评论、留言,看到会回的哦!

       gitee.com/fushentong/sa...