仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1229|回复: 18
打印 上一主题 下一主题

[学习教程] PHP编程:文件下载统计php编程

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-4 00:20:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大部分语言的基础,不是说c有多好,而是c相对起手容易学,让你认为这个是编程语言,编程|统计|下载   如今有很多站点下载文件都供应了统计功效,本文会商的是若何利用php完成此功效,关于想埋没下载文件途径,防止用户直接利用url下载的编程者,本文也具有必定的参考价值。
完成情况:linux+apache+php+mysql

windows98+pws4+php+mysql

1、数据库布局

数据库中创立一个表,存储文件信息,包含文件编码、称号、下载途径、统计,响应的sql文件内容以下:

create database dl_db;

create table dl_file (

id varchar(6),

name varchar(50),

url varchar(200),

count bigint(10)

);

insert into dl_file values( '000001', 'test', 'test.zip', 0);

insert into dl_file values( '000002', 'tif', 'download/123.tif', 0);

2、php编程

1、 函数文件

函数文件包含数据库毗连初始化函数和提醒信息显示函数。

dl_func.php3:

<?

//初始化数据库毗连的法式

function dl_dbconnect(){

error_reporting(1+4); //禁失落warning性毛病

$dl_in=0;

$dl_in=mysql_connect("localhost:3306","root","123456");

if(!dl_in) { //假如毗连掉败,加入

echo "数据库没法毗连";

exit;

}

mysql_select_db("dl_db",$dl_in);

return $dl_in;

}



//显示提醒信息的函数

function infopage($strinfo){

echo "<script language='javascript'>";

echo " window.alert('$strinfo');";

echo " history.back();";

echo "</script>";

}

?>



2、 下载毗连页面

下载毗连页面从数据库读取下载文件信息并显示。

filelist.php3:

<html>

<head><title>文件下载</title>

<script language="javascript">

function newopen(url){

window.open(url,"_self");

return;

}

</script>

</head>

<?

require("dl_func.php3");

$dl_in=dl_dbconnect();

$strquery="select * from dl_file order by id";

$dl_res=mysql_query($strquery,$dl_in);

while($arr_dlfile=mysql_fetch_array($dl_res)){

echo "<a href=\"javascript:newopen('filedown.php3?id=$arr_dlfile[id]')\">";

echo "$arr_dlfile[name]";

echo " ";

echo "(下载次数:$arr_dlfile[count])";

echo "<br>";

}

mysql_close($dl_in);

?>

</html>

3、 下载页面

当文件存在时,下载页面转到要下载的文件,假如产生毛病,则显示提醒信息。

filedown.php3:

<?

require("dl_func.php3");

$dl_in=dl_dbconnect();

$strquery="select url from dl_file where id='$id'";

$dl_res=mysql_query($strquery,$dl_in);

if(!($arrfile=mysql_fetch_array($dl_res))){ //选择了局为空

infopage("毛病的id号");

exit;

}else{

$arr_temp=split("/",$arrfile[url]);

$filename=$arr_temp[sizeof($arr_temp)-1];

if(strlen(trim($filename))==0){//文件称号为空

infopage("毛病的文件");

exit;

}else{

$strquery="update dl_file set count=count+1 where id='$id'";

mysql_query($strquery,$dl_in);

header("content-type: application/file");

header("content-disposition: attachment; filename=$filename");//缺省时文件保留对话框中的文件称号

header("location:$arrfile[url]");

//echo “this is test for echo-download”;

}

}

mysql_close($dl_in);

?>

完成的道理是filelist.php3显示一切文件的毗连,然后依据传递的id来失掉文件的称号和途径,经由过程从头定位来下载文件。以上法式笔者测试过,运转正常。

文件url可所以当地的,也能够是其他办事器上的。

假如文件内容存储在数据库中,或文件没有在http和ftp的途径下,处理的办法可以使用将文件的内容echo出来代替header(“location:$arrfile[url]”),因为读取文件办法绝对复杂,这里不再赘述。


  让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。
18#
发表于 2015-7-10 07:32:26 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
莫相离 该用户已被删除
17#
发表于 2015-7-8 21:21:50 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
因胸联盟 该用户已被删除
16#
发表于 2015-5-10 19:09:16 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
兰色精灵 该用户已被删除
15#
发表于 2015-5-6 08:09:17 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
精灵巫婆 该用户已被删除
14#
发表于 2015-5-3 17:04:42 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
山那边是海 该用户已被删除
13#
发表于 2015-4-21 19:13:10 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
愤怒的大鸟 该用户已被删除
12#
发表于 2015-4-17 00:46:05 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
蒙在股里 该用户已被删除
11#
发表于 2015-4-16 17:10:53 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
老尸 该用户已被删除
10#
发表于 2015-4-16 07:50:46 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
飘灵儿 该用户已被删除
9#
发表于 2015-4-7 14:34:54 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
变相怪杰 该用户已被删除
8#
发表于 2015-4-3 23:29:49 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-22 00:51:15 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
海妖 该用户已被删除
6#
发表于 2015-3-19 15:12:33 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
第二个灵魂 该用户已被删除
5#
发表于 2015-3-11 22:46:22 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
若相依 该用户已被删除
地板
发表于 2015-3-6 11:20:45 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
乐观 该用户已被删除
板凳
发表于 2015-3-3 14:44:09 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
谁可相欹 该用户已被删除
沙发
发表于 2015-2-13 05:34:43 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
灵魂腐蚀 该用户已被删除
楼主
发表于 2015-2-4 12:04:01 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 13:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表