php----拷贝兔源代码分析dl函数和getdata函数
<div class="cpt-show">
<div class="cpt-file">
{if $is}
{if $type == 'text'}
{$data['content']|htmlspecialchars_decode}
{else}
<p class="orig">{$data['name']}</p>
<p class="fsize">可用下载次数: {$data['num']}</p>
<div class="dl-btn" id="do_dl" data-tag="tp2s">
<img src="https://f0cdn.anyknew.com/cptool/img/dl-file.png" width="23">
<span class="helper"><a href="/dl/{$data['tag']}.html" title="">下载文件</a>
data.html里面的这里,下载文件的时候调用dl()函数!!!在index/controller/index.php里面
网址http://www.shujucx.com/s/615打开后
下载文件按钮的链接地址为:
http://www.shujucx.com/dl/615.html
而http://www.shujucx.com/s/615调用的index/controller/index.php里面的getData()函数
public function getData($key) {
if (empty($key) || strlen($key) != 3) {
return $this->redirect('/');
}
if (request()->isMobile()) {
$css = true;
} else {
$css = false;
}
$data = Db::table('data')->where('tag', $key)->find();
if (empty($data)) {
return $this->redirect('/');
}
if ($data['num'] <= 0 || time() > strtotime($data['end_time']) ) {
$filepath = THINK_PATH . '../public' . $data['file_path'];
if (file_exists($filepath)) {
unlink($filepath);//删除文件
};
Db::table('data')->where('tag', $key)->delete();
$is = false;
} else {
$is = true;
}
if (!empty($data['content'])) {
@Db::table('data')->where('tag', $key)->update(['num' => $data['num'] - 1]);
}
$type = empty($data['content']) ? 'file' : 'text';
$this->assign('type', $type);
$this->assign('is', $is);
$this->assign('data', $data);
$this->assign('css', $css);
return $this->fetch('index/data'); 注意最后这一句很重要,要显示data.html对应的页面
}
</span>
</div>
{/if}
{else}
<p class="orig">失效或提取码不正确</p>
php----拷贝兔源代码分析dl函数和getdata函数相关推荐
- PHP源代码分析-字符串搜索系列函数实现详解
今天和同事在讨论关键字过虑的算法实现,前几天刚看过布隆过滤算法,于是就想起我们公司内部的查找关键字程序,好奇是怎么实现的.于是查找了一下源代码,原来可以简单地用stripos函数查找, stripos ...
- openCV中的findHomography函数分析以及RANSAC算法的详解(源代码分析)
本文将openCV中的RANSAC代码全部挑选出来,进行分析和讲解,以便大家更好的理解RANSAC算法.代码我都试过,可以直接运行. 在计算机视觉和图像处理等很多领域,都需要用到RANSAC算法.op ...
- Common Lisp 函数 require 和 provide 源代码分析
2019独角兽企业重金招聘Python工程师标准>>> Common Lisp 函数 require 和 provide 源代码分析 === 涉及文件: l1-files.lisp ...
- MediaInfo源代码分析 4:Inform()函数
===================================================== MediaInfo源代码分析系列文章列表: MediaInfo源代码分析 1:整体结构 Me ...
- MediaInfo源代码分析 3:Open()函数
===================================================== MediaInfo源代码分析系列文章列表: MediaInfo源代码分析 1:整体结构 Me ...
- MediaInfo源代码分析 2:API函数
===================================================== MediaInfo源代码分析系列文章列表: MediaInfo源代码分析 1:整体结构 Me ...
- Media Player Classic - HC 源代码分析 8:RenderFile函数详细分析(CFGManager)
前面有两篇文章分析了Media Player Classic - HC(mpc-hc)的源代码中的核心类 CMainFrame: Media Player Classic - HC 源代码分析 2:核 ...
- ipset源代码分析之kadt和uadt回调函数
一定要清楚自己在干什么,每行代码在干什么,这样写的代码才能做到心中有数. 之前看到ip_set_hash_ip.chash_ip4_uadt和hash_ip4_kadt函数,就一直很好奇这两个函数是干 ...
- 笛卡尔心形函数图像c语言,笛卡尔-心形图 源代码 分析
java的代码如下,谁能帮我用C#改写一下啊,谢谢,感激不尽 import javafx.application.Application; import javafx.scene.Scene; imp ...
最新文章
- AccEAP架构介绍(1)---实体的设计
- 如何在Android Wear上节省电池寿命
- PTA -- A1046 Shortest Distance
- 在51单片机上使用递归的注意事项
- 聚类算法:K-Means
- 如何理解什么是放射?
- 零件缝隙平行线距离检测2
- 微软输入法数字有间隔_Word 2016中使用微软拼音输入法,换行后输入数字、标点时会没有输入进去,需要再输入一次...
- Leetcode应该怎么刷?【笔试】
- 全志V3s学习记录(11)音频、视频使用总结
- Win10 64bit 下 Oracle 11g的下载与安装+PLSQL的安装 (超级详细)
- MCDownloader(iOS下载器)说明书
- 《别让这种习惯毁掉你的一生,改变他!》
- nodejs项目mysql使用sequelize支持存储emoji
- 入手评测 ROG 冰刃 5 Plus怎么样
- MOOC《程序设计入门——C语言》错题集
- 【电力负荷预测】基于matlab BP神经网络电力负荷预测【含Matlab源码 278期】
- Altium Designer如何实现圆弧布线
- 播放4K视频需要什么样的配置
- 【SQL】interval关键字用法
热门文章
- Javase杂谈(四)
- 群体药动学药效学模型
- Bootstrap4——字体大小根据屏幕改变解决方案
- [高精度]高精度的封装
- -128的补码及原码、反码、补码
- 科普:什么是CPU?CPU和芯片关系?CPU怎么做的?CPU有什么用?不同CPU有什么区别?我们怎么选CPU?
- the info.plist in the package must contain the CFBundleShortVersionString key.
- 数据采集程序-----直播间
- python 文字识别 tesseract_Python_文字识别引擎试用:tesseract-ocr
- 物联网通信技术期末复习7:第七章-典型物联网通信系统