今天还在写 VipSystem Pro 的授权部分,用户授权后,生成匹配该用户的唯一的 php 文件集合 (在一个目录下),然后进行 zip 下所并弹出下载。文章源自狐狸影视城-https://fox-studio.net/31847.html
这个临时生成的 zip 文件存放在我指定的一个目录。每个用户授权不同的功能,都会产生一个唯一的 zip 压缩文件。用户多了,服务器会存放很多 zip 文件。这时候,就需要设置一个过期时间,删除这些文件。留给用户一个下载有效期。即能保证空间不被过多占用,也能保证授权文件不被恶意下载。文章源自狐狸影视城-https://fox-studio.net/31847.html
文章源自狐狸影视城-https://fox-studio.net/31847.html
截图中的是生成的临时文件。文章源自狐狸影视城-https://fox-studio.net/31847.html
通过如下代码删除文章源自狐狸影视城-https://fox-studio.net/31847.html
<?php /** * 名称:删除超过指定时间 web 服务器指定目录下,指定文件。 * 时间:2016-10-24 20:24 * 作者:千年骚狐 */ /** * 获取目录下文件列表 * $dir 为文件的绝对路径 * $all 如果该目录下还有文件夹,是否进行搜索。默认 true,搜索。 */ function list_dir($dir,$all=true){ $result = array(); if (is_dir($dir)){ //目录存在 $file_dir = scandir($dir); //返回指定目录中的文件和目录的数组。 foreach($file_dir as $file){ //遍历数组中的文件和目录 //iconv('gbk','utf-8',$file); //如果目录中存在中文名称,可以使用本条 if ($file == '.' || $file == '..'){ //过滤掉当前目录'.'和上一级目录'..' continue; } elseif (is_dir($dir.$file) && $all==true){ //如果路径为目录,则继续遍历其中的文件以及目录 $result = array_merge($result, list_dir($dir.$file.'/')); } else{ //如果路径为文件则加入输入数组 array_push($result, $dir.$file); } } } return $result; //输出文件路径 } /** * 删除超时的指定文件 * $file_dir_array 是文件路径的数组 * $file_type 指定要删除文件的文件格式 * $expiration_time 设置超时时间,单位为分钟 */ function delete_zip_file($file_dir_array,$file_type,$expiration_time){ foreach($file_dir_array as $file_name){ //遍历数组 if(is_file($file_name)){ //如果为文件 $file_info = pathinfo($file_name); //返回路径的信息 if($file_info['extension'] == $file_type){ //文件后缀为指定的 $file_type $create_time = filectime($file_name); //获得文件创建时间 $expiration_time = strtotime("+".$expiration_time." minutes",$create_time); //设置超时时间 if($expiration_time < time()){ //创建的文件时间超过指定时间 unlink($file_name); //删除该文件 } } } } } /** * 调用方法 * 比如,我想删除 D:\phpStudy\WWW\web\wp-content\plugins\my_plugins\temp 目录下,超过创建时间 5 分钟的 zip 文件。 */ //定义路径 $dir = 'D:\phpStudy\WWW\web\wp-content\plugins\my_plugins\temp'; //定义是否搜索子级目录的文件,这里我不搜索 $all = false; //获得定义路径下载文件目录数组 $file_dir_array = list_dir($dir,$all); //定义要删除的文件格式 $file_type = 'zip'; //定义超时时间,单位:分 $expiration_time = '5'; //执行删除命令 delete_zip_file($file_dir_array,$file_type,$expiration_time); ?>
我觉得给这个插件做的授权系统,都可以独立出来一个授权软件了。其中还会生成对应每一个用户的独立的 key 文件。文章源自狐狸影视城-https://fox-studio.net/31847.html
文章源自狐狸影视城-https://fox-studio.net/31847.html
这些是密文,而不是简单的加密所用特征码。他们是可以通过密钥翻译成字符串的。文章源自狐狸影视城-https://fox-studio.net/31847.html
感觉自己好高端,哈哈。文章源自狐狸影视城-https://fox-studio.net/31847.html
2017 年 4 月 8 日 上午 8:28 1F
差了一个判断,要是没删除成功也是静悄悄的。