分类
原创

php学习笔记(五)

1.实在是郁闷,昨天花了4个小时来研究php的文件上传。想实现的功能是:能根据上传者的部门,及上传文件分属哪个活动,直接将这些文件归类到不同文件夹。
2.首先的难题出现在如何建立一个目录?………表笑,大多文章都讲了如何向某一目录上传,偏偏不说怎么向某一不存在的目录上传………最后在G的过程中发现了一篇文章,看到了mkdir这个函数,马上php手册一下,明白了它的用法。将之搬至程序中,噩梦开始了。。。。
3.说一下目录结构:/uploads/$dep/$name/ 读取cookie中的dep_id来填充$dep,读取url过来的pro_name来填充$name。然后mkdir(/uploads/$dep/$name/)。结果页面空白,uploads目录下也没反应。………………这中间的尝试不想再提了,遇到过类似问题的朋友都清楚那种感觉。现在讲关键的一步,我试着简化一下:mkdir(/uploads/$dep/),本来初衷是觉得可能$name在传输过程中出了问题,所以减去它,谁知道这下成功了!然后有点感觉了,将$name再加上去,[wink]成功了,/uploads/$dep/$name/ 建立成功!虽然没搞懂原因,但还是很兴奋的。赶紧换了几个$name测试,都成功了。正高兴呢,就换了个$dep,结果又不行了…………经过反复测试,发现mkdir()函数只能在当前以存在的目录下建立目录,也就是说一次只能建一级目录,当$dep/不确定时,$name/也就无法建立。so 解决方法出来了,比较笨,不知道还有没有好点的方法:
[code]$dep = $_COOKIE[‘dep_id’];
$name = $_GET[‘pro_name’];
$dir1 = “../uploads/$dep/”;
$dir2 = “../uploads/$dep/$name/”;
if (!is_dir($dir2)) //判断是否存在该目录
{
mkdir(“$dir1”);
mkdir(“$dir2″);
}
$uploadfile = $dir2 . basename($_FILES[‘userfile’][‘name’]);[/code]

4.在解决这个问题的过程中还了解了php对于字符串是如何解析的。单引号”直接输出里面的内容,eg: 将‘$dep’输出:$dep,而双引号””可以自动解析里面的变量等等,eg: 将”$dep”输出:组织部。
5.程序中用到的is_dir()函数在使用过程中出了个很奇怪的问题,不知道是否是BUG。当时为了监视is_dir()的值,用$a指向它,然后输出$a的值,结果在is_dir()为TRUE时,$a能正常输出1,但是在函数为FALSE时,页面上却无任何输出。但是用var_dump(is_dir())却能正确输出FALSE。不知道是否和php对逻辑变量的定义有关。有空再去看看资料吧。

分类
原创

php学习笔记(四)

1.貌似PHP5+APACHE2.2.2直接支持在URL传递时使用中文。在网上看见有的朋友无法用URL传递中文,于是我做了个实验。在我这个环境下,不管是否使用urlencode()函数,中文都能很好的传递并在数据库中被检索。
2.一直没提到一点,这次给学生会做这个系统,框架规划是用mindmanager做的。确实适合我这种懒人,不愿画草稿,而且有进度提示,能督促自己。
3.因为在规划数据库结构时,参考了PHP&MySQLWebDevelopmentThirdEdition这本书。让第一次开发网络系统的我意识到primary key的重要性。在之后的开发中,pk起了很大的作用。下次再做系统时,肯定会更仔细的考虑需求与应用,完善数据库结构。
4.以前对信息化的思考都停于表面,这次实际上了手才更清楚的明白了信息化带来的便利,以及信息强大的力量。