1. 递归函数
- 递归函数: recursion 函数自身调用自身, 但必须调用自身之前有满足特定条件,否则会无线调用下去。
<?PHP
// 递归函数:
// 封闭一个递归函数,删除缓存目录,即要删除所有文件及目录
// 要删除目录首先要打开目录,用opendir(),成功则返回一个资源类型,即目录句柄,失败返回false
// is_dir()判断是否是目录
// php删除目录命令只能删除空目录,即要先删除所有文件
/*
* 参数:目录路径
* 删除指定的目录
*
*/
// 原理:判断是否目录->打开目录,取得目录句柄->读取句柄遍历取得资源名称->判断资源名称是目录,是则再调用自身函数,不是则删除文件->
function clear_cache_dir($dir)
{
// 判断路径是否是目录
if (is_dir($dir)) {
// 打开目录,判断是否取得目录资源,即打开目录返回不为false,同时定义变量$handle存放目录资源
if ($handle = opendir($dir)) {
// 从目录资源中读取每个目录和文件,判断读取结果,不为false时,遍历取得资源名称,用$file存放
// 注意,目录名为0时,会判断为false,因此要比较不全等!==
while (($file = readdir($handle)) !== false) {
// 判断资源路径是否是目录
if ($file != '.' && $file != '..') {
if (is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
// 再次调用自身,直到进入最后一层目录
clear_cache_dir($dir . DIRECTORY_SEPARATOR . $file);
} else {
// 不是目录则为文件,执行删除文件
unlink($dir . DIRECTORY_SEPARATOR . $file);
}
}
}
// 遍历所有子目录,删除所有文件后,关闭目录句柄
closedir($handle);
// 删除目录,设置删除标识为true
if (rmdir($dir)) {
return json_encode(['msg' => '清除成功', 'satatus' => 1], 320);
} else {
// 返回json字符串
return json_encode(['msg' => '清除失败', 'satatus' => 0], 320);
}
}
}
}
$dir = __DIR__ . DIRECTORY_SEPARATOR . 'bootstrap';
echo clear_cache_dir($dir);
2. MySql
-设置默认字符集
修改my.ini,增加以下内容:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
- 建立表news
CREATE TABLE news (
titel varchar(300) NULL COMMENT '标题',
img varchar(300) NULL COMMENT '图片',
content text NULL COMMENT '内容',
date date NULL COMMENT '日期',
class varchar(50) NULL COMMENT '分类'
);
- 插入数据
INSERT INTO news (titel,img,content,date,class) VALUES ('做好新发展阶段“三农”工作的行动纲领','','做好新发展阶段“三农”工作的行动纲领','2022-3-25','国内要闻');
INSERT INTO news (titel,img,content,date,class) VALUES ('国防部回应“美军F35与歼20近距离接触”','','国防部回应“美军F35与歼20近距离接触”',NOW(),'军事要闻');
INSERT INTO news (titel,img,content,date,class) VALUES ('五年来,雄安的每一天都是新的 奋斗吧!中国','','五年来,雄安的每一天都是新的 奋斗吧!中国',NOW(),'国内要闻');
INSERT INTO news (titel,img,content,date,class) VALUES ('4月1日起油价调整!加满一箱油,将多花4.5元','','4月1日起油价调整!加满一箱油,将多花4.5元',NOW(),'国内要闻');
INSERT INTO news (titel,img,content,date,class) VALUES ('工龄20年纺织大叔测评服装走红:想在老家盖房子','','工龄20年纺织大叔测评服装走红:想在老家盖房子',NOW(),'国内要闻');
INSERT INTO news (titel,img,content,date,class) VALUES ('俄军在俄日争议领土战斗训练 夜间发出罕见闪光轰鸣','','俄军在俄日争议领土战斗训练 夜间发出罕见闪光轰鸣',NOW(),'军事要闻');
INSERT INTO news (titel,img,content,date,class) VALUES ('美国空军期待B-21与B-52CERP轰炸机“搭班作战”','','美国空军期待B-21与B-52CERP轰炸机“搭班作战”',NOW(),'军事要闻');
删除数据
DELETE FROM news WHERE class='军事要闻';
查询
— 条件WHERESELECT * FROM news WHERE class='军事要闻';
SELECT titel,date FROM news WHERE class='国内要闻';
— 分页LIMIT
SELECT titel,date FROM news WHERE class='国内要闻' LIMIT 1,3;
— 排序ORDER:ASC 正序(默认)、DESC 倒序
SELECT titel,date FROM news WHERE class='国内要闻' ORDER BY date DESC;
SELECT titel,date FROM news WHERE class='国内要闻' ORDER BY date;
- 修改
UPDATE news SET class='国际要闻' , img='https://n.sinaimg.cn/mil/crawl/143/w550h393/20220329/50d3-e7cc796b54b235bcb98ef3115ed0dda4.jpg' WHERE titel='俄军在俄日争议领土战斗训练 夜间发出罕见闪光轰鸣';