菜菜小豪 / zh-CN 菜菜小豪一个热爱生活,分享大学的生活趣事,记录生活点滴的所思所想,php,提供免费php源码下载和网站搭建技术教程,主要分享和发布网站源码,网站搭建教程,php技术教程,实战软件分享,致力创造一个高质量网络资源教程的分享平台 Tue, 29 Dec 2020 20:30:00 +0800 Tue, 29 Dec 2020 20:30:00 +0800 2021广东专插本时间报名时间,2021广东专插本时间考试时间,2021广东专插本加分政策(最新) /75.html /75.html Tue, 29 Dec 2020 20:30:00 +0800 小豪 [scode type="green"]日前,《广东省招生委员会办公室关于做好广东省2021年普通高等学校专升本招生考试工作的通知》(粤招办〔2020〕30号)印发,明确了考试工作相关事项,快随小编一起来看↓↓

为贯彻落实教育部有关工作部署和要求,结合我省实际,经研究,决定对原本科插班生招生考试进行优化,调整为普通高等学校专升本招生考试(以下简称普通专升本),现就2021年我省普通专升本招生考试有关工作通知如下:[/scode]

一、科学设置招生专业,做好计划申报工作

(一)确定招生专业。各招生院校须根据社会需求,按照应用型人才培养目标要求,积极向推动产业转型升级和民生改善的领域倾斜,并结合本校的办学条件、教学要求和培养能力等实际情况,合理确定本校2021年普通专升本招生专业和招生计划。省教育厅将根据教育部的要求核定分学校招生计划。

(二)做好计划申报。各招生院校在省教育厅核定的招生计划内,按院校专业组模式安排分专业招生计划,并登录“广东省普通高校专升本管理系统”进行申报。2021年普通专升本将设提前批、普通批、建档立卡三个批次,按照院校专业组模式进行平行志愿投档录取。

1.提前批为需要相应职业资格证书的职教师资类专业;普通批分为哲学、经济学、法学、教育学、文学、历史学、理学、工学、农学、医学、管理学、艺术学12个学科门类;建档立卡批次仅限建档立卡考生报考,学科门类与普通批次基本相同,在普通批次录取完成后进行投档录取。

2.招生院校需将考试科目组(含公共课、专业基础课、专业综合课)、招生基本条件(含考生体检要求、前置专业要求、技能证书要求等)相同的招生专业组成一个院校专业组。一个院校专业组即为1个独立的招生代码,一个招生院校(专业)可设多个院校专业组、多个招生代码。

3.招生院校须按院校专业组编制分专业招生计划。考试科目组相同的专业,但体检要求不同的,院校须根据实际情况编制为不同的院校专业组。

4.院校在申报分专业计划时,须参照教育部有关普通高校招生体检标准的相关规定,设置特殊体检要求、前置专业要求、技能证书要求专业等招生条件,并在招生目录中公布。

5.各招生院校须按一定比例安排招收建档立卡考生的计划,且要根据实际情况分配到有关专业,并在招生目录中公布。

6.支持公办本科院校与入选国家“双高计划”的高职院校对接,有效组合、充分利用高职院校办学资源,参照现有本科高职的协同育人项目方式,依托高职院校开展两年专升本协同育人、联合培养。具体事宜,另行通知。

二、完善招生章程,做好报名工作

2021年普通专升本招生考试初步安排在2021年1月下旬报名(具体办法另文通知),实行网上预报名、网上审核和网上交费。志愿填报安排在考试成绩公布后进行。各招生院校要根据普通专升本考试、录取优化调整的情况,修订完善招生章程(招生简章),按规定上报并及时向社会公布。

(一)确定考试科目组。为解决院校自行组织命题科目不统一、成绩不可比,考生只能填报1个院校志愿的问题,更好、更规范地实施招生录取工作,满足广大考生上学的愿望,2021年普通专升本将进一步优化招生院校考试科目安排。

1.实行“2+1+1”考试科目组。依照教育部《普通高等学校本科专业目录》(2020年版),结合我省实际,将普通专升本招生专业进一步归类细化,分成若干专业组,按照专业组设置考试科目组。2021年普通专升本考试科目共设4门,分别为2门公共课、1门专业基础课、1门专业综合课(即“2+1+1”)。公共课、专业基础课每科考试时间120分钟、卷面满分值100分;专业综合课每科考试时间150分钟、卷面满分值200分。

其中外国语言文学类中非英语类专业公共课为1门,增加1门专业课,专业课考试时间120分钟,卷面满分值100分。

2.考试命题方式。2021年,公共课、专业基础课继续实行全省统一命题考试。按照“逐步推进,有序实施”的原则,部分专业综合课实行全省统一命题考试。

公共课为政治理论和英语2门,其中外国语言文学类中非英语类专业公共课为政治理论1门。

专业基础课按照教育部《普通高等学校本科专业目录》(2020年版)分设的哲学、经济学、法学、教育学、文学、历史学、理学、工学、农学、医学、管理学、艺术学12个学科门类进行设置。

2021年法学、电气工程及其自动化等43个招生院校和招生计划较多的专业实行省统考(具体专业范围见附件2)。其他省级统考没有覆盖的专业,招生院校可选择用相近的省统考专业综合课替代,也可自行组织命题,鼓励招生院校开展校际联合命题。

各招生院校自行组织命题的专业综合课原则上相同专业需统一课程名称。相关招生院校要高度重视,积极协商确定统一课程名称。院校自行组织命题的专业综合课在省招生办规定的统一时间同时举行考试,考试时间安排在省统考科目后。外国语言文学类中非英语类专业的专业课,以及个别艺术类专业和需要面试或实操考试等特殊专业的专业综合课,由招生院校自行组织,考试时间由院校在省招生办规定的时间范围内自行决定并通知考生。

对于专业综合课,考生要结合自身拟报考院校实际,选择报考省统考或院校自行组织命题科目,也可同时选择报名参加1个省统考科目组和1个院校自命题科目进行考试。

(二)志愿填报。2021年普通专升本实行考后知分填报志愿,考试成绩公布后,考生根据自身实际,按院校专业组模式进行志愿填报。考生只能按自身报考的考试科目组选择相应院校专业组志愿及专业志愿进行填报。参加了专业综合课省统考和招生院校自行命题科目考试的考生,可同时填报提前批、普通批和建档立卡批次中符合条件的院校专业组。

提前批(职教师资类专业)设置1个院校专业组志愿,普通批设置6个院校专业组志愿,建档立卡批次设置1个院校专业组志愿。

(三)投档录取。按照考生类别(职教师资、建档立卡考生、普通考生),以及上述12个学科大类分别划定四科总分和专业综合课两条分数线。依据四科总分实行院校专业组平行志愿投档录取,考生必须四科总分和专业综合课同时上线才能投档。报考职教师资类专业的考生符合相关条件的也可参加普通批次和建档立卡批次的投档录取。

退役士兵考生实行单独划线、单列计划,在相应批次投档录取。

(四)征集志愿。 2021年普通专升本继续实行征集志愿。在正式投档录取结束后,若院校因上线生源不足、考生不服从专业调剂等原因未完成招生计划的,可视情况进行征集志愿录取,征集志愿投档录取的原则如下:

1.依据省统考科目的成绩投档,招生院校按照招生章程(招生简章)公布的录取原则择优录取。

2.招生院校自行组织命题的专业综合课的专业,可由招生院校自行决定是否参加征集志愿录取。确定参加征集志愿录取的,院校应在招生简章中明确对省统考专业综合课或其他院校自行组织命题的专业综合课成绩的认定要求。

(五)考生资格审核。各招生院校需按照省招生办的要求,协助做好考生报名资格的审核工作。各招生院校要高度重视,加强领导,强化措施,认真负责做好考生报名资格和上传资料的审核。对在审核过程中,招生院校工作人员不负责、不履职,准予不符合报名条件考生报考的,将追究学校有关领导及相关责任人的责任,并在教育系统内全省通报批评

三、安全规范开展命题,做好考务组织工作

招生院校必须严格按照我省普通专升本招生有关规定做好自行组织命题的专业综合课命题工作,严格考试组织工作,切实保证普通专升本招生考试的公平公正。

(一)命题工作。普通专升本招生考试统考科目由省招生办统一组织,非统考的专业综合课由招生院校自行组织。专业综合课命题,直接关系到普通专升本招生考试人才选拔的质量,各招生院校要高度重视专业综合课命题工作,在配合省招生办做好省统考科目命题教师推荐选聘的同时,在学校自命题科目命题人员选聘和管理、命题原则和要求把握、试卷安全保密、试卷印制和保管及寄送等环节上,加强领导,精心组织,严格管理,严肃纪律,确保普通专升本招生考试命题工作顺利进行。

(二)考试组织。各考点要结合我省普通专升本招生考试考务工作规定的相关要求,做好考场布置工作,尽可能为考生提供安全、卫生、良好的考试环境。加强考试的监督管理,从严治考,对考试违纪作弊行为予以坚决制止和查处,严肃考风考纪。要设立考场巡视员制度,对不认真履行职责的监考人员和有关工作人员要按规定严肃处理。

(三)考试时间:初步安排在2021年4月中旬。

(四)考点建设。普通专升本招生考试的考点将主要设置在各招生院校。各招生院校须提前谋划,大力加强标准化考场建设,原则上所有招生院校须按照不少于上一年度招生计划数3倍的规模建设标准化考场(每个考场按30人计算),招生规模较小的院校,标准化考场数量不得少于50个。考场建设要求按照《广东省教育厅关于印发广东省国家教育考试标准化考点管理办法(试行)》的通知》(粤教考函〔2018〕31号)执行,网上巡查系统的视频监控须全部达到高清标准,全面覆盖试卷保密室、考务室、试卷分发(回收)室、考场,并实现与省教育考试院互联互通;试卷保密室必须符合《国家教育考试安全保密工作规定》并经省国家保密局验收合格、颁证;各考场须配备考生身份识别(人脸识别)验证系统、作弊防控系统和考务指令播放系统。各考点须根据国家教育考试管理的相关要求,建立健全考点管理制度,明确职责分工,细化工作流程,确保考试安全、规范实施。

四、规范加分照顾政策

为进一步完善创新人才培养机制,鼓励和支持高职学生开展创新创业、提高职业技能,对符合我省普通专升本招生报考相关规定,并获得中国国际“互联网+”大学生创新创业大赛(高教主赛道、青年红色筑梦之旅、职教赛道)(以下简称“互联网+”大赛)或教育部等37部门主办的全国职业院校技能大赛(以下简称职业院校大赛)或人力资源社会保障部主办的中华人民共和国职业技能大赛(以下简称职业技能大赛)奖项的考生,可在其普通专升本招生文化课省统考成绩总分的基础上增加分值投档,具体规定如下:

(一)获得“互联网+”大赛国赛金奖或银奖(团队)、职业院校大赛或职业技能大赛国赛一等奖及以上的高职(专科)学生,可在其普通专升本招生文化课省统考成绩总分的基础上增加15分投档,由高校择优录取。

(二)获得“互联网+”大赛国赛铜奖或省赛金奖(团队)、职业院校大赛或职业技能大赛国赛二等奖的高职(专科)学生,可在其普通专升本招生文化课省统考成绩总分的基础上增加10分投档,由高校择优录取。

(三)获得“互联网+”大赛省赛银奖或铜奖(团队)、职业院校大赛或职业技能大赛国赛三等奖的高职(专科)学生,可在其普通专升本招生文化课省统考成绩总分的基础上增加5分投档,由高校择优录取。

五、工作要求

(一)提高思想认识。各校要充分认识到普通专升本招生优化调整面临的新形势、新任务、新要求,充分认识到普通专升本优化调整的复杂性和艰巨性,从有利于高校科学选才、有利于促进教育公平、有利于考生升学深造的高度,进一步提高认识,处理好发展和稳定的关系,严格按照本通知要求抓好落实,认真研究组织实施过程中出现的新问题、新情况,并妥善解决,确保2021年普通专升本招生考试稳妥有序进行。

(二)加强组织领导。各校要切实提高政治站位,加强组织领导,明确责任,健全机制,不断完善普通专升本招生考试保障制度,构建科学、规范的考试招生管理体系。要认真制定本校普通专升本招生考试工作方案和招生简章,严格把好考生报名资格审核关口,组织实施好招生录取工作,主动适应普通专升本招生考试需要。

(三)加强宣传引导。各校要认真做好普通专升本招生考试宣传引导工作,坚持正面宣传,加大对普通专升本优化调整政策的宣传解读力度,让社会充分知晓普通专升本优化调整内容和要求,及时回应社会关切,正确引导合理预期,凝聚共识,营造良好氛围。

2021年广东省普通专升本报名考试的相关规定、具体要求和时间安排另文通知,并将通过省教育考试院网站、微信公众号及时向社会公布。

附件:

1.广东省2021年普通高等学校专升本招生学科门类与专业基础课对应表

2.广东省2021年普通高校专升本招生统考专业及专业综合课表

附件1

20201229201324.jpg

附件2
20201229201345.jpg
20201229201357.jpg

内容出处:广东省教育考试院

]]>
2 /75.html#comments /feed/75.html
php中的引用赋值和传值赋值有什么区别,以及它们常用的场景 /71.html /71.html Mon, 28 Dec 2020 17:31:00 +0800 小豪 [scode type="green"]在我们学习中,很多人可能都不知道引用赋值和传值赋值是什么。只知道一个大概的意思,包括我在内。Php中的引用赋值和传值赋值有什么区别,引用的场景,今天将重新学习[/scode]

php传值赋值

php传值赋值:将变量的值复制出一份新的值(值是一样的),只是在内存中出现两份不同的内存空间。将新值内存空间地址赋值给新的变量名字。修改两个变量的值时还不影响
代码:

<?php
    $var1=10;
    $var2=$var1;//将变量的值复制出一份新的值,它们两个的内存地址不相同
?>

php引用赋值

引用赋值:是将变量的引用复制出来一份。指向原来的内存地址,当变量时引用时,unset()只会取消引用,不会销毁内存空间

简单的来说:引用意味着用不同的名字访问同一个变量的内容

代码:

<?php
    $var1=10;
    $var2=&$var1;//将var1变量的引用赋给var2同,两个变量的内存地址都是一样的
    unset($var2);.//取消引用,内存地址还在
    echo $var;//等于10
?>

&赋值的时候,视为一个变量定义了一个别名,增加了一个对内存空间的引用。改变其中一个,会影响其他的引用。而使用unset()时,只是断开了对变量内存空间的引用,内存空间不会释放。

php中的引用赋值和传值赋值,它们常用的场景。

  1. 可以将一个变量bai通过引用传递给函数,du这样zhi该函数就可以修改其参数的值dao;
  2. 用引用传递变量。这是通过在函数内建立一个本地变量并且该变量在呼叫范围内引用了同一个内容来实现的;
  3. 大量的数据赋值给变量a,如果b变量使用传值赋值,b变量的就会开辟新的内存地址,占用内存空间。使用引用赋值只是将变量a指向赋值给变量b,没有开辟新的内存空间

更多作用可参考:https://learnku.com/articles/17525

]]>
0 /71.html#comments /feed/71.html
Vscode代码自动同步到服务器的插件(sftp插件) /69.html /69.html Thu, 16 Jul 2020 17:47:00 +0800 小豪 Vs code线下代码自动同步到服务器的插件(sftp插件)

前言

[scode type="blue"]之前在做一个项目的时候,发现自己写完代码之后,写完之后才一起上传到服务器。在修改完代码之后,还得一点一点得上传代码,然后就想有什么神器能够在线下打得每一个代码自动同步到服务器,以是就发现了一款vscode插件-sftp插件[/scode]

sftp插件安装

1.打开vscode在商店里搜索sftp安装使用
20200716173934.png

如何设置vscode sftp插件

1.安装完后ctrl+shift+p,输入 SFTP: Config
20200716174138.png
2.然后配置相关信息
20200716174228.png

{
    "name": "My Server", //名字
    "host": "120.25.237.243",//你的服务器的ip地址
    "protocol": "sftp", //协议:[sftp/ftp]默认ftp
    "port": 22,//端口
    "username": "root", //用户名 
    "password": "xxx", //密码
    "remotePath": "/www/wwwroot/test.zhihao1.cn", 远程文件夹地址,默认/",
    "downloadOnOpen": false,
    "uploadOnSave": true,
    "watcher": {
        "files": "*",
        "autoUpload": true,
        "autoDelete": true
    }
}

sftp配置的参数:
host:工作站的IP地址
username:工作站自己的用户名
privateKeyPath:存放在本地的已配置好的用于登录工作站的密钥文件(也可以是ppk文件)
remotePath:工作站上与本地工程同步的文件夹路径,需要和本地工程文件根目录同名,且在使用sftp上传文件之前要手动在工作站上mkdir生成这个根目录
uploadOnSave:本地更新文件保存会自动同步到远程文件(不会同步重命名文件和删除文件)
downloadOnOpen:从远程服务器下载打开的文件
ignore:忽略的文件(匹配的文件不会同步)
watcher:监听器(可以重命名文件和删除文件)
autoUpload:文件变更会自动同步(修改和重命名)
autoDelete:文件删除会自动同步
以上就是vscode sftp使用过程

结语

边写代码,边自动实时上传代码特别爽,线下开发与线上开发同时进行。工作的效率也会提高的

]]>
7 /69.html#comments /feed/69.html
liunx查看端口占用情况命令,liunx杀死占用端口命令 /65.html /65.html Mon, 11 May 2020 21:46:00 +0800 小豪 前言

我们在开发的过程,有时候端口会被莫名其秒的占用,导致我们程序运行不了,这个时候我们应该如何查看端口的情况,或者杀死端口的进程

liunx查看所有端口命令

netstat -nultp(此处不用加端口号)
这个命令是查看当前所有已经使用的端口情况
20200511213917.png
看一下status状态,LISTEN表示已经被占用,PID为进程号
20200511213948333.png

liunx查看单个端口命令

netstat -anp |grep 端口号
例如我现在查看的是3306端口netstat -anp |grep 3306
2020051121422344444.png

linux杀死端口进程

sudo kill -9 进程号
看一下自己的端口是几号,直接杀死就好了。

]]>
1 /65.html#comments /feed/65.html
教你写,微信公众号网页授权以及获取微信个人信息 /60.html /60.html Tue, 05 May 2020 21:00:00 +0800 小豪 前言

我们在开发的过程,可能会遇到一些需求,比如要获取微信公众号用户的信息,这个时候,我们就要通过微信公众号网页授权来获取

准备步骤

[scode type="yellow"]微信申请接口测试号,https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login [/scode]
1.在此之前,为了我们方便去测试,我们先去微信申请接口测试号,https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 这个就是测试号申请地址,然后我们扫码登陆一下
ooo1.png
然后往下拉,找到网页授权,点击一下修改,然后填一下你要回调的域名,我下面授权的域名gzh.zhihao1.cn作为测试
oo2.png
2.在做开发之前,首页我们阅读一下微信公众号官方提供的文档,有关的微信公众号网页授权也在刚才修改网页授权回调域名的地方.
oo3.png

3.通过文档我们不难看出,首先我们要获取code,再通过code去获取到access_token和openid,拿到用户的openid后,再去获取用户信息的就可以了
oo4.png

第一步:用户同意授权,获取code和openid

直接上代码了
index.php

<?php
    $appid='wxd69bfad9e18aa02b';
    $redirect_uri = urlencode ( 'http://gzh.zhihao1.cn/getUserInfo.php' );//将字符串以 URL 编码。
    $url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
    header("Location:".$url);//header() 函数向客户端发送原始的 HTTP 报头。
?>

提交的参数,和获取到的参数可以自行看一下微信公众号的文档
当用户点击授权,我们会得到返回code到getUserInfo.php这个文件里

第二步:通过code换取网页授权access_token

然后我们创建getuserinfo.php文件,这个文件里授权后重定向的回调链接地址,我们要接收一下get请求,传过来的code,有code之后接下就好办,获取code后,请求以下链接获取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
请求参数和返回值话可以自行看一下微信公众号
index.php

<?php
header("content-type:text/html;charset=utf-8");
    $code = $_GET["code"];//预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。
    if (isset($_GET['code'])){//判断code是否存在
        $userinfo = getUserInfo($code);
         $appid = "wxd69bfad9e18aa02b";
        $appsecret = "186905023306451c202b992df6e5d43a";

        //Get access_token
        $access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
        $res=file_get_contents($access_token_url);
          $access_token_array = json_decode($access_token_json,true);//对 JSON 格式的字符串进行解码,转换为 PHP 变量,自带函数
        //获取access_token
        $access_token = $access_token_array['access_token'];//获取access_token对应的值
        //获取openid
        $openid = $access_token_array['openid'];//获取openid对应的值
        }
    else{
        echo "NO CODE";
    }

以上就是完成了我们整个网页授权的过程。拿到openid后,接下来我们就置换用户信息了

第三步用openid和access_token获取用户个人信息

接口调用请求说明 http请求方式: GET https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_C
为了方便我们对getuserinfo.php重新写一个方法给他调用
完整的index.php

<?php
    header("content-type:text/html;charset=utf-8");
    $code = $_GET["code"];//预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。
    if (isset($_GET['code'])){//判断code是否存在
        $userinfo = getUserInfo($code);
        // $xinxi = $userinfo['ni'];//获取nickname对应的值,即用户名
        print '<h2 style="text-align:center">用户名:'.$userinfo['nickname'].'</h2>';//打印输
        print '<img src="'.$userinfo['headimgurl'].'" alt="">';//打印输
        print '<h2 style="text-align:center">城市:'.$userinfo['city'].'</h2>';//打印输
    }else{
        echo "NO CODE";
    }
    
    function getUserInfo($code)
    {
        $appid = "wxd69bfad9e18aa02b";
        $appsecret = "186905023306451c202b992df6e5d43a";

        //Get access_token
        $access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
        $access_token_json = https_request($access_token_url);//自定义函数
        $access_token_array = json_decode($access_token_json,true);//对 JSON 格式的字符串进行解码,转换为 PHP 变量,自带函数
        //获取access_token
        $access_token = $access_token_array['access_token'];//获取access_token对应的值
        //获取openid
        $openid = $access_token_array['openid'];//获取openid对应的值
        // var_dump($openid);
        // die;
        //Get user info
        $userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid";
        $userinfo_json = https_request($userinfo_url);
        $userinfo_array = json_decode($userinfo_json,true);
        return $userinfo_array;
    }

    function https_request($url)//自定义函数,访问url返回结果
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl,  CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($curl);
        if (curl_errno($curl)){
            return 'ERROR'.curl_error($curl);
        }
        curl_close($curl);
        return $data;
    }
?>

所有的请求参数和返回值请看微信公众号文档。毕竟文档才是开发员的必须的啊
以上的过程我们就完成了微信的网页授权和获取个人信息,其实我们还可以封装成更好的方法

结尾&总结

多看文档,多学习,其实整个步骤实现的过程挺简单的。

]]>
0 /60.html#comments /feed/60.html
php操作redis,PHP操作Redis步骤详解,php操作redis方法 /56.html /56.html Fri, 10 Apr 2020 00:57:45 +0800 小豪 前言

这两天再学redis,redis一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,它的读写的速度非常的快,接下来分享一下php操作redis方法和步骤,简单易学。
redis.jpg

Redis连接与认证

$redis = new Redis();
//连接参数:ip、端口、连接超时时间,连接成功返回true,否则返回false
$ret = $redis->connect('127.0.0.1', 6379, 30);
//密码认证:成功返回true,否则返回false
$ret = $redis->auth('123456');

String操作

//设置键值:成功返回true,否则返回false
$redis->set('mystr', 'Welcome!');
//获取键值:成功返回String类型键值,若key不存在或不是String类型则返回false
$ret = $redis->get('mystr');
//从某个key所存储的字符串的指定偏移量开始,替换为另一指定字符串,成功返回替换后新字符串的长度。
$ret = $redis->setRange('mystr', 7, ' to Beijing!');
//获取存储在指定key中字符串的子字符串。
$ret = $redis->getRange('mystr', 0, 6);
//设置新值,返回旧值:若key不存在则设置值,返回false
$ret = $redis->getSet('mystr', 'hi man');
//一次设置多个键值对:成功返回true。
$ret = $redis->mset(['name' => 'jet', 'age' => 18]);
//一次获取多个key的值:返回一个键值对数组,其中不存在的key值为false。
$ret = $redis->mget(['name', 'age']);
//设置指定key的值及其过期时间,单位:秒。
//参数:键名,过期时间,键值。成功返回true。
$ret = $redis->setex('name', 10, 'jetwu');
//以毫秒为单位设置指定key的值和过期时间。成功返回true。
$ret = $redis->psetex('name', 10, 'jetwu');
//key的值不存在时,才为其设置值。key不存在且设置成功返回true,否则返回false。
$ret = $redis->setnx('name', 'boby');
//setnx命令的批量操作。只有在给定所有key都不存在的时候才能设置成功,只要其中一个key存在,所有key都无法设置成功。
$ret = $redis->msetnx(['country' => 'China', 'city' => 'Shenzhen']);
//获取指定key存储的字符串的长度,key不存在返回0,不为字符串返回false。
$ret = $redis->strlen('name');
//将指定key存储的数字值增加1。若key不存在会先初始化为0再增加1,若key存储的不是整数值则返回false。成功返回key新值。
$ret = $redis->incr('age');
//给指定key存储的数字值增加指定增量值。
$ret = $redis->incrBy('age', 10);
//给指定key存储的数字值增加指定浮点数增量。
$ret = $redis->incrByFloat('age', 1.5);
//将指定key存储的数字值减一。
$ret = $redis->decr('age');
//将指定key存储的数字值减去指定减量值。
$ret = $redis->decrBy('age', 10);
//为指定key追加值到原值末尾,若key不存在则相对于set()函数。
$ret = $redis->append('mystr', 'haha');

Hash操作

//为hash表中的字段赋值。成功返回1,失败返回0。若hash表不存在会先创建表再赋值,若字段已存在会覆盖旧值。
$ret = $redis->hSet('user', 'realname', 'jetwu');
//获取hash表中指定字段的值。若hash表不存在则返回false。
$ret = $redis->hGet('user', 'realname');
//查看hash表的某个字段是否存在,存在返回true,否则返回false。
$ret = $redis->hExists('user', 'realname');
//删除hash表的一个字段,不支持删除多个字段。成功返回1,否则返回0。
$ret = $redis->hDel('user', 'realname');
//同时设置某个hash表的多个字段值。成功返回true。
$ret = $redis->hMset('user', ['name' => 'jet', 'age' => 18]);
//同时获取某个hash表的多个字段值。其中不存在的字段值为false。
$ret = $redis->hMget('user', ['name', 'age']);
//获取某个hash表所有的字段和值。
$ret = $redis->hGetAll('user');
//获取某个hash表所有字段名。hash表不存在时返回空数组,key不为hash表时返回false。
$ret = $redis->hKeys('user');
//获取某个hash表所有字段值。
$ret = $redis->hVals('user');
//为hash表中不存在的字段赋值。若hash表不存在则先创建,若字段已存在则不做任何操作。设置成功返回true,否则返回false。
$ret = $redis->hSetNx('user', 'realname', 'jetwu');
//获取某个hash表的字段数量。若hash表不存在返回0,若key不为hash表则返回false。
$ret = $redis->hLen('user');
//为hash表中的指定字段加上指定增量值,若增量值为负数则相当于减法操作。若hash表不存在则先创建,若字段不存在则先初始化值为0再进行操作,若字段值为字符串则返回false。设置成功返回字段新值。
$ret = $redis->hIncrBy('user', 'age', 10);
//为hash表中的指定字段加上指定浮点数增量值。
$ret = $redis->hIncrBy('user', 'age', 1.5);

List操作

//将一个元素加入集合,已经存在集合中的元素则忽略。若集合不存在则先创建,若key不是集合类型则返回false,若元素已存在返回0,插入成功返回1。
$ret = $redis->sAdd('myset', 'hello');
//返回集合中所有成员。
$ret = $redis->sMembers('myset');
//判断指定元素是否是指定集合的成员,是返回true,否则返回false。
$ret = $redis->sismember('myset', 'hello');
//返回集合中元素的数量。
$ret = $redis->scard('myset');
//移除并返回集合中的一个随机元素。
$ret = $redis->sPop('myset');
//返回集合中的一个或多个随机成员元素,返回元素的数量和情况由函数的第二个参数count决定:
//如果count为正数,且小于集合基数,那么命令返回一个包含count个元素的数组,数组中的元素各不相同。
//如果count大于等于集合基数,那么返回整个集合。
//如果count为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为count的绝对值。
$ret = $redis->sRandMember('myset', 2);
//移除集合中指定的一个元素,忽略不存在的元素。删除成功返回1,否则返回0。
$ret = $redis->srem('myset', 'hello');
//迭代集合中的元素。
//参数:key,迭代器变量,匹配模式,每次返回元素数量(默认为10个)
$ret = $redis->sscan('myset', $it, 'a*', 5);
//将指定成员从一个源集合移动到一个目的集合。若源集合不存在或不包含指定元素则不做任何操作,返回false。
//参数:源集合,目标集合,移动元素
$ret = $redis->sMove('myset', 'myset2', 'aaa');
//返回所有给定集合之间的差集,不存在的集合视为空集。
$ret = $redis->sDiff('myset', 'myset2', 'myset3');
//将所有给定集合之间的差集存储在指定的目的集合中。若目的集合已存在则覆盖它。返回差集元素个数。
//参数:第一个参数为目标集合,存储差集。
$ret = $redis->sDiffStore('myset3', 'myset', 'myset2');
//返回所有给定集合的交集,不存在的集合视为空集。
$ret = $redis->sInter('myset', 'myset2', 'myset3');
//将所有给定集合的交集存储在指定的目的集合中。若目的集合已存在则覆盖它。返回交集元素个数。
//参数:第一个参数为目标集合,存储交集。
$ret = $redis->sInterStore('myset4', 'myset', 'myset2', 'myset3');
//返回所有给定集合的并集,不存在的集合视为空集。
$ret = $redis->sUnion('myset', 'myset2', 'myset3');
//将所有给定集合的并集存储在指定的目的集合中。若目的集合已存在则覆盖它。返回并集元素个数。
//参数:第一个参数为目标集合,存储并集。
$ret = $redis->sUnionStore('myset4', 'myset', 'myset2', 'myset3');

Zset操作

//将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,则更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。
$ret = $redis->zAdd('scores', 98, 'English', 90, 'physics');
//返回有序集中指定区间内的成员。成员按分数值递增排序,分数值相同的则按字典序来排序。
//参数:第四个参数表示是否返回各个元素的分数值,默认为false。
$ret = $redis->zRange('scores', 0, -1, true);//查看Zset所有成员以及它们各自的分数值
//返回有序集中指定区间内的成员。成员按分数值递减排序,分数值相同的则按字典序的逆序来排序。
$ret = $redis->zReverseRange('scores', 0, -1, true);
//返回有序集中指定分数区间的成员列表,按分数值递增排序,分数值相同的则按字典序来排序。默认使用闭区间。
$ret = $redis->zRangeByScore('scores', 90, 100, ['withscores'=>true]);
//返回有序集中指定分数区间的成员列表,按分数值递减排序,分数值相同的则按字典序的逆序来排序。注意,区间表示的时候大值在前,小值在后,默认使用闭区间。
$ret = $redis->zRevRangeByScore('scores', 100, 90, ['withscores'=>true]);
//迭代有序集合中的元素。
//返回值:[元素名=>分数值,,..]
$ret = $redis->zscan('scores', $it, '', 10);
//返回指定有序集的元素数量。
$ret = $redis->zCard('scores');
//返回有序集中指定分数区间的成员数量。
$ret = $redis->zCount('scores', 90, 100);
//返回有序集中指定成员的分数值。若成员不存在则返回false。
$ret = $redis->zScore('scores', 'math');
//返回有序集中指定成员的排名,按分数值递增排序。分数值最小者排名为0。
$ret = $redis->zRank('scores', 'chemistry');
//返回有序集中指定成员的排名,按分数值递减排序。分数值最大者排名为0。
$ret = $redis->zRevRank('scores', 'chemistry');
//移除有序集中的一个或多个成员,忽略不存在的成员。返回删除的元素个数。
$ret = $redis->zRem('scores', 'chemistry', 'English');
//移除有序集中指定排名区间的所有成员。
$ret = $redis->zRemRangeByRank('scores', 0, 2);
//移除有序集中指定分数值区间的所有成员。
$ret = $redis->zRemRangeByScore('scores', 80, 90);
//对有序集中指定成员的分数值增加指定增量值。若为负数则做减法,若有序集不存在则先创建,若有序集中没有对应成员则先添加,最后再操作。
$ret = $redis->zIncrBy('scores', 2, 'Chinese');
//计算给定一个或多个有序集的交集,并将其存储到一个目的有序集中。结果集中某个成员的分数值是所有给定集下该成员分数值之和。
$ret = $redis->zinterstore('zset3', 'zset2', 'zset1');
//计算给定一个或多个有序集的并集,并将其存储到一个目的有序集中。结果集中某个成员的分数值是所有给定集下该成员分数值之和。
$ret = $redis->zunionstore('zset3', 'zset2', 'zset1');

结尾

以上就是php操作redis的方法,文章内容整理来自互联网上。

]]>
0 /56.html#comments /feed/56.html
网站全局变成黑白的代码 /54.html /54.html Sat, 04 Apr 2020 00:41:00 +0800 小豪 前言

新华社北京4月3日电 为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动。在此期间,全国和驻外使领馆下半旗志哀,全国停止公共娱乐活动。4月4日10时起,全国人民默哀3分钟,汽车、火车、舰船鸣笛,防空警报鸣响。
为表达对抗新冠状疫情战斗牺牲烈士和逝世同胞的深切哀悼,国务院公告2020年4月4日将举行全国性哀悼活动,网站要求黑白色,下面给大家放一次性修改代码,直接放在CSS样式里面就可以了!
4.png

网站变成黑白的代码附上

把下面代码加到网站全局head标签内即可

html {
    filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
    -webkit-filter: grayscale(100%);
}

结尾

深切哀悼抗疫烈士和逝世同胞,愿逝者安息,愿生者奋发,愿祖国昌盛深切哀悼抗疫烈士和逝世同胞,愿逝者安息,愿生者奋发,愿祖国昌盛

]]>
0 /54.html#comments /feed/54.html
你为什么不喜欢谈恋爱了? /52.html /52.html Sat, 14 Mar 2020 23:58:00 +0800 小豪 为什么现在的人不喜欢谈恋爱了

以下是来自各位网友的观点。
1.有趣的灵魂太少了

2.不是不想,而是喜欢不上别人了,遇不到那个让我心甘情愿的人了

3.因为明白了恋爱只是各取所需

4.朋友说要结婚了因为不小心有了孩子;朋友说要结婚了因为父母之命;朋友说要结婚了因为年龄大了;朋友说要结婚了因为对方条件还不错。很多的结婚理由,我仿佛很久没听到他要结婚是因为很爱一个人,想永远跟她在一起…

5.身边谈恋爱的都没有好结果,不想步他们的后尘。

6.其实我想谈恋爱,但是没人谈,所以我只能说我不喜欢谈恋爱

7.喜不喜欢,在不在一起,合适不合适,是三件不同的事

8.因为一个人也可以过得很好,还比两个人轻松,两个人在一起有的东西一个人也可以有。

9.感情慢慢变淡的那段日子真的太难熬了,害怕了

10.谈恋爱要花钱,而我现在没钱,不敢谈。

11.重新找一个人并认识彼此太累了,花光了你所有精力,只差一个结局却要你从头再来。

13.过了22岁,觉得爱情是责任,担当,理智,成熟,相互忍耐,很多时候,你遇到的是要像爹妈宠孩子一样去宠的人,一步步降低你的底线,变成一个疲惫不堪的人。那么为什么自寻烦恼,浪费时间呢。

14.自己都不优秀学什么谈恋爱

15.因为我有更重要的事了:手机

16.偏见使我无法爱别人,傲慢使别人无法爱我。

17.大抵多数人都不愿孤独的一个人 只是害怕了失望

18.这就好像你问一个连饭都吃不起的人为什么不喜欢开法拉利了。

wxs.jpg

]]>
0 /52.html#comments /feed/52.html
git教程,git推送到远程仓库,git拉取仓库代码回 /50.html /50.html Thu, 12 Mar 2020 13:59:00 +0800 小豪 git前言介绍

1.Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。也可以简单的形容:代码托管管理
2.什么叫做分布式版本控制系统:就是每个人都可以创建一个独立的代码仓库用于管理,各种版本控制的操作都可以在本地完成。每个人修改的代码都可以推送合并到另外一个代码仓库中。
3.git对于每一个开发者或者团队来说,都是一个比较好的代码管理工具。
4.介绍了这么多,简单的来说,git就是很牛就对。

如何安装git呢

Git安装配置,其实也非常的简单,
Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。
相信大部分都要是window系统

window下git安装

首先我们先介绍一下window下git安装,傻瓜式安装
git.jpg
在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:

安装包下载地址:https://git-scm.com/downloads,目前最新版本是2.25.1

在Linux上安装Git

通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单。

老一点的Debian或Ubuntu Linux,要把命令改为sudo apt-get install git-core,因为以前有个软件也叫GIT(GNU Interactive Tools),结果Git就只能叫git-core了。由于Git名气实在太大,后来就把GNU Interactive Tools改成gnuit,git-core正式改为git。

如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了。

详情的话,可以看一下官网https://git-scm.com/download/linux

新手git的简单使用

git推送到远程仓库命令步骤

1.git init首先新建一个文件夹在当前文件夹下初始化一个git仓库
22.png
2.git add . (将当前工作区的所有文件存放到暂存区)
33.png
3.git commit -m "我的第一提交"(引号里面是备注信息;此命令作用:将暂存区中存放的文件提交到git仓库;其中 “ae8e179”就是你所要提交的ID)
44.png
4.git remote add origin 远程仓库地址(将本地代码库的当前分支与远程的git代码库相关联,此处你可改为自己的git仓库)
55.png
5.git push -u origin master(把当前分支推送到远程的代码库;下面标红的100% 提示你进度。)
6.png
以上就是推送到远程仓库的内容

git如何拉取仓库里代码回本地

1.git init(初始化一个仓库)
2.git remote add origin 项目git地址(与你要拉取的项目git地址进行关联)
3.git pull origin 分支名(然后拉取分支到本地)就成功了
以上就是拉取仓库内容的

git切换分支

在一个很大完整的项目里,后期可能会增加用户的需求,或者存在某一个Bug,这时候就得创建一个分支进行管理
首先我们假设创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

其实这条git checkout -b dev,相当于两条命令

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

git branch dev:创建一个dev分支
git checkout dev:是切换到dev分支
然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

然后我们就可以把代码提交到dev分支上。
记住这只是一个本地分支

创建远程分支

那怎么样把创建远程分支呢
其实很简单,把本地分支推送上去就行了

$ git push dev:dev

git push 远程的分支名:本地的分支名
要想删除远程分支
git push :本地的分支名
远程分支的名,留空就行了

合并分支

想将dev分支合并到master分支,操作如下:
1.首先切换到master分支上
git checkout master
2.如果是多人开发的话 需要把远程master上的代码pull下来
git pull origin master
3.然后我们把dev分支的代码合并到master上
git merge dev(如遇到冲突解决完后再次提交)
4.推送到远程的master上
git push origin master
这样就完成了合并分支了。

git结尾

git的基础使用教程,就结束这么多了,在绝大部分的场景已经够用,当然git还有更高级的运用,例如,版本的倒退,git的解决冲突,我们在后续的再出一下关于这些的教程

]]>
0 /50.html#comments /feed/50.html
如何进行时间管理,时间管理速成指南教程 /43.html /43.html Fri, 06 Mar 2020 22:23:00 +0800 小豪 如何进行时间管理,时间管理速成指南教程

时间管理是指通过事先规划和运用一定的技巧、方法与工具实现对时间的灵活以及有效运用,从而实现个人或组织的既定目标的过程。
时间是这个世界上最宝贵的东西,有时候我们在做一些事情是的时候,总觉得时间不够用,时间过得太快了,那是因为你没有一个好的计划,好的管理在把控你的时间,今天给大家分享的这套教程就是教你管理你的时间,每周轻松多出13个小时来,一起来看看吧~.
1.jpg

自己的时间不够用,事情做不完?总是爱拖延,
工作容易分心,效率低下?制定一长串的To do list,
真正执行的没有几个?跟老师一起让你每周多处13.7小时
去做自己爱做的事,成为你想最想成为的那个人!

链接: https://pan.baidu.com/s/10P_fcDKSU9u8Jtc0grbIGA 提取码: 3ru2

]]>
0 /43.html#comments /feed/43.html