PHP 基础编程 2
文章目录
- 时间函数
- date
- getdate
- time
- 使用数组实现登录注册和修改密码
- 简单数组
- 增加元素方法
- 修改元素方法
- 删除元素方法
- 具体实现方法
- 数组序列化
- 数组写入文件
- 判断元素是否在关联数组中(登录功能实现)
- 实现注册功能
- 实现修改admin用户密码功能
时间函数
时区:中国 东8区
php.ini 时区设置为:date.timezone = Asia/Shanghai
分号为注释
H = 小时 i = 分钟 s = 秒钟
Ymd = 年月日

date
<?php//date 格式化一个本地时间/日期//getdate getdate 是一个数组,取数组中的值//time 返回当前的unix时间戳header("Content-Type: text/html; charset=utf-8");$a = date ("H:i:s");$b = date ("Ymd");echo $b;echo "<br>";echo $a;

getdate
getdate 是一个数组
header("Content-Type: text/html; charset=utf-8");$a = date ("H:i:s");$b = date ("Ymd");$c = getdate ();echo $b;echo "<br>";echo $a;echo "<br>";var_dump($c);
array(11) { ["seconds"]=> int(17) ["minutes"]=> int(37) ["hours"]=> int(11) ["mday"]=> int(4) ["wday"]=> int(4) ["mon"]=> int(1) ["year"]=> int(2024) ["yday"]=> int(3) ["weekday"]=> string(8) "Thursday" ["month"]=> string(7) "January" [0]=> int(1704339437) }

取数组的时间戳 [0]=> int(1704339437) ,有了时间戳就可以将时间数组读取出来
header("Content-Type: text/html; charset=utf-8");$a = date ("H:i:s");$b = date ("Ymd");$c = getdate ();echo $b;echo "<br>";echo $a;echo "<br>";var_dump($c);echo $c['0'];

有了时间戳就可以随意输出你想要的时间,具体代码如下
header("Content-Type: text/html; charset=utf-8");$a = date ("Ymd H:i:s",1704349737);//$b = date ("Ymd",1704349737);$c = getdate (1704349737);echo $a;echo "<br>";echo $a;echo "<br>";var_dump($c);echo "<br>";echo $c['0'];echo '<br>';echo $c["year"].$c["mon"].$c["mday"]." ".$c["hours"].":".$c["minutes"].":".$c["seconds"];

time
time()函数返回当前的uinx时间戳
header("Content-Type: text/html; charset=utf-8");$a = date ("Ymd H:i:s",1704349737);//$b = date ("Ymd",1704349737);$c = getdate (1704349737);echo $a;echo "<br>";echo $a;echo "<br>";var_dump($c);echo "<br>";echo $c['0'];echo '<br>';echo $c["year"].$c["mon"].$c["mday"]." ".$c["hours"].":".$c["minutes"].":".$c["seconds"];echo '<br>';echo time();

使用数组实现登录注册和修改密码
数组函数的用途:1、增加一个元素 2、修改元素 3、删除元素
简单数组
<?phpheader("Content-Type: text/html; charset=utf-8");$a = array('鼠','牛','虎','龙','蛇'); var_dump($a);?>

增加元素方法
<?phpheader("Content-Type: text/html; charset=utf-8");$user=array('admin'=>'123456','test'=>'123','root'=>'789456');//关联数组var_dump( $user );$user['administrator'] = 'admin';//往数组里增加一个元素echo "<br>";var_dump( $user );?>

修改元素方法
<?phpheader("Content-Type: text/html; charset=utf-8");$user=array('admin'=>'123456','test'=>'123','root'=>'789456');var_dump( $user );$user['administrator'] = 'admin';//往数组里增加一个元素echo "<br>";var_dump( $user );$user['administrator'] = 'admin123456';//修改元素echo "<br>";var_dump( $user );
?>

删除元素方法
header("Content-Type: text/html; charset=utf-8");//$a = array('鼠','牛','虎','龙','蛇'); //var_dump($a);$user=array('admin'=>'123456','test'=>'123','root'=>'789456');var_dump( $user );$user['administrator'] = 'admin';//往数组里增加一个元素echo "<br>";var_dump( $user );$user['administrator'] = 'admin123456';//修改administrator 元素echo "<br>";var_dump( $user );unset($user["administrator"]);//删除administrator 元素echo "<br>";var_dump( $user );

具体实现方法
数组序列化
数组不是字符串想写到文件里面需要序列化
序列化之后会返回一个字符串
serialize() //序列化函数
header("Content-Type: text/html; charset=utf-8");$user=array('admin'=>'123456','test'=>'123','root'=>'789456');//数组$a=serialize($user);//序列化数组$userfile_put_contents('userpassword.txt',$a);//将$a的数据写到userpassword.txt

数组写入文件
$a=file_get_contents("userpassword.txt");//读序列化后的文件,内容为字符串$b=unserialize($a);//反序列化,将字符串转为数组的过程var_dump($b);

判断元素是否在关联数组中(登录功能实现)
前端代码
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>登录页面</title></head><body><form action="shuzu.php" method="get">用户名:<input type="text" name="username">密码:<input type="text" name="password"><input type="submit"></form></body></html>

后端代码
//需求 1、登录 2、注册 3、修改密码header("Content-Type: text/html; charset=utf-8");$u = $_GET["username"];$p = $_GET["password"];/*//$a = array('鼠','牛','虎','龙','蛇'); //var_dump($a);$user=array('admin'=>'123456','test'=>'123','root'=>'789456');var_dump( $user );$user['administrator'] = 'admin';//往数组里增加一个元素echo "<br>";var_dump( $user );$user['administrator'] = 'admin123456';//修改administrator 元素echo "<br>";var_dump( $user );unset($user["administrator"]);//删除administrator 元素echo "<br>";var_dump( $user );*//*header("Content-Type: text/html; charset=utf-8");$user=array('admin'=>'123456','test'=>'123','root'=>'789456');//数组$a=serialize($user);//序列化数组$user,将变量转换为字符串file_put_contents('userpassword.txt',$a);//将$a的数据写到userpassword.txt*/$i=1;$a=file_get_contents("userpassword.txt");//读序列化后的文件,内容为字符串$b=unserialize($a);//反序列化,将字符串转为数组的过程//var_dump($b);foreach($b as $key=>$value){ //循坏遍历关联数组$bif($u == $key && $p == $value){ //$u = $key $p = $value$i=0; //匹配成功将$i 设置为0 输出 "登录成功"echo "登录成功";break;}}if($i == 1){echo "登录失败";} //未匹配成功$i=1 输出 登录失败


实现注册功能
前端页面
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>注册</title></head><body><form action="register.php" method="POST">用户名:<input type="text" name="username">密码: <input type="text" name="password">确认密码:<input type="text" name="password1"><input type="submit"></form></body></html>

后端页面
//需求 1、登录 2、注册 3、修改密码header("Content-Type: text/html; charset=utf-8");$u = $_POST["username"];$p = $_POST["password"];$p1 = $_POST ["password1"];if ($p != $p1) { //如果$p 不等于 $p1 则退出代码执行echo "两次密码不一致";exit;}$a=file_get_contents("userpassword.txt");//读序列化后的文件,内容为字符串$b=unserialize($a);//反序列化,将字符串转为数组的过程//var_dump($b);foreach($b as $key=>$value){ //循坏遍历关联数组$bif($u == $key ){ //$u = $key echo "用户已存在"; //查找用户是否存在exit; //退出,代码不再执行}} $b[$u]=$p; //添加用户元素$c=serialize($b); //序列化file_put_contents("userpassword.txt",$c);//写入文件echo"注册成功";



实现修改admin用户密码功能
前端代码
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>改密码</title></head><body><h1>admin 修改密码</h1><form action="changepassword.php?username=admin" method="post">旧密码:<input type="password" name="password">新密码:<input type="password" name="password1"><input type="submit"></form></body></html>

后端代码
//需求 1、登录 2、注册 3、修改密码header("Content-Type: text/html; charset=utf-8");$u = $_GET["username"];$p = $_POST["password"];$p1 = $_POST["password1"];if ($p != $p1) { //如果$p 不等于 $p1 则退出代码执行echo "两次密码不一致";exit;}$i=1;$a = file_get_contents("..\userpassword.txt");$b = unserialize($a);foreach($b as $key=>$value){ //循坏遍历关联数组$bif($u == $key ){ //$u = $key $b[$u]=$p;$c=serialize($b); //序列化file_put_contents("..\userpassword.txt",$c);//写入文件echo"密码修改成功";break;}else{$i=0;}}if($i=0){echo"用户不存在";}


相关文章:
PHP 基础编程 2
文章目录 时间函数dategetdatetime 使用数组实现登录注册和修改密码简单数组增加元素方法修改元素方法删除元素方法 具体实现方法数组序列化数组写入文件判断元素是否在关联数组中(登录功能实现)实现注册功能实现修改admin用户密码功能 时间函数 时区&am…...
git merge origin master 和 git merge origin/master 的区别
git merge origin master和git merge origin/master的区别 1. git checkout dev 2. git fetch origin master 3. git merge origin release 把 origin/master,heads/release merge到 heads/dev1. git checkout dev 2. git fetch origin master 3. git me…...
数据挖掘 模糊聚类
格式化之前的代码: import matplotlib.pyplot as plt#绘图 import pandas as pd#读取数据集 from sklearn.preprocessing import scale from sklearn.cluster import DBSCAN#聚类 from sklearn import preprocessing#数据预处理的功能,包括缩放、标准化…...
Vue2和Vue3各自的优缺点以及区别对比
Vue2和Vue3各自的优缺点以及区别对比 Vue2的优点: 成熟稳定:Vue2是一个经过长时间发展和测试的成熟版本,广泛应用于各种项目中。 生态系统丰富:由于Vue2的流行程度,它的生态系统相对较为完善,有大量的插件…...
手写一个加盐加密算法(java实现)
目录 前言 什么是MD5?? 加盐算法 那别的人会不会跟你得到相同的UUID? 如何使用盐加密? 代码实现 前言 对于我们常见的登录的时候需要用到的组件,加密是一个必不可少的东西,如果我们往数据库存放用户…...
基于Springboot的在线考试系统
点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88499371 mysql5、mysql8都可使用 内含配置教程文档,一步一步配置 Springboot所写 管理员页面 学生页面...
【React系列】JSX核心语法和原理
本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. ES6 的 class 虽然目前React开发模式中更加流行hooks,但是依然有很多的项目依然是使用类组件&#x…...
【C++初阶(九)】C++模版(初阶)----函数模版与类模版
本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…...
Permission denied
Permission denied:权限被拒绝,没有访问文件的权限。 查询对文件的权限: ls -l 文件名称 r为可读权限,w为可写权限,x为可执行权限。 授权文件rwx,可读可写可执行权限: chmod 777 文件名称 如…...
轻松学会电脑如何录制音频
随手录音,保留证据以便后续出现问题进行判定,或者保存会议音频记录方便后续根据录音内容整理自己会议记录不足之处等等;越来越多的地方需要用到录音,那么在电脑上该如何进行音频录制呢?特别是使用比较广泛的Windows电脑…...
react antd,echarts全景视图
1.公告滚动,40s更新一次 2.echarts图标 左右轮播 60s更新一次 3.table 表格 import { useState, useEffect } from react;import Slider from react-slick; import slick-carousel/slick/slick-theme.css; import slick-carousel/slick/slick.css;import Layout fro…...
GD32 支持IAP的bootloader开发,使用串口通过Ymodem协议传输固件(附代码)
资料下载: https://download.csdn.net/download/wouderw/88714985 一、概述 关于IAP的原理和Ymodem协议,本文不做任何论述,本文只论述bootloader如何使用串口通过Ymodem协议接收升级程序并进行IAP升级,以及bootloader和主程序两个工程的配置…...
【C#】知识点实践序列之UrlEncode在线URL网址编码、解码
欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是2024年第8篇文章,此篇文章是C#知识点实践序列文章, 博主能力有限,理解水平有限,若有不对之处望指正! 地址编码大家应该比较经常遇到和使用到&…...
泽攸科技完全自主研制的电子束光刻机取得阶段性成果
国产电子束光刻机实现自主可控,是实现我国集成电路产业链自主可控的重要一环。近日,泽攸科技联合松山湖材料实验室开展的全自主电子束光刻机整机的开发与产业化项目取得重大进展,成功研制出电子束光刻系统,实现了电子束光刻机整机…...
上篇 | CDP应用篇之兴趣标签的3种破圈玩法
谈到客户洞察,在这个以客户为中心、以数据为驱动的客户经营时代,贯通数据,联动CDP客户数据平台、SCRM、会员、营销一站式的客户洞察解决方案,成为了头部房企们的万千宠爱。其中关于人群兴趣标签的破圈玩法,我们结合过往…...
智能的核心依然是哲学的三个基本问题
智能的发展与哲学的三个基本问题密切相关,作为一个复杂领域,智能涉及到人类认知和行为的模拟与复制,因而也会涉及到哲学的核心问题。 存在论:智能的存在论问题涉及到什么是智能以及智能系统的本质。这包括对于意识、思维和自主性的…...
用python实现提取word中的所有图片
你可以使用python-docx库来处理word文件,然后遍历文件中的所有形状,找到图片。 首先,你需要安装python-docx库。在命令行中输入以下命令进行安装: 复制代码 pip install python-docx 然后,你可以使用以下代码提取wo…...
CoTracker 环境配置与ORB 特征点提取结合实现视频特征点追踪
CoTracker 环境配置&与ORB 特征点提取结合实现视频特征点追踪 文章目录 CoTracker 环境配置&与ORB 特征点提取结合实现视频特征点追踪Step1:配置 CoTracker 环境Step2:运行官方的例程Step3:结合 ORB 特征点提取结果展示: …...
10000000000 大瓜背后的真相(附 PDD 算法真题)
10 个亿的大事? 京东诉阿里强迫商家「二选一」,京东胜诉,获阿里赔偿 10 亿。 很多小伙伴见到公主号开创了锐评时事板块,当天就在后台留言问我看法。 先说结论:这是一则「媒体影响力」远大于「实际意义」的报道。 首先&…...
python爬虫,简单的requests的get请求,百度搜索实例
1、百度搜索实例 import requests url https://www.baidu.com/s? # key_word 迪丽热巴 key_word input(输入搜索内容:) headers {User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
