PHP编程:文件下载统计php编程
大部分语言的基础,不是说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')\">";
echo "$arr_dlfile";
echo " ";
echo "(下载次数:$arr_dlfile)";
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);
$filename=$arr_temp;
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");
//echo “this is test for echo-download”;
}
}
mysql_close($dl_in);
?>
完成的道理是filelist.php3显示一切文件的毗连,然后依据传递的id来失掉文件的称号和途径,经由过程从头定位来下载文件。以上法式笔者测试过,运转正常。
文件url可所以当地的,也能够是其他办事器上的。
假如文件内容存储在数据库中,或文件没有在http和ftp的途径下,处理的办法可以使用将文件的内容echo出来代替header(“location:$arrfile”),因为读取文件办法绝对复杂,这里不再赘述。
让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 Ps:以上纯属原创,如有雷同,纯属巧合 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。 本文当是我的笔记啦,遇到的问题随时填充 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
页:
[1]