仓酷云

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

[学习教程] PHP网页编程之PHP中的目次遍历细说教程

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:30:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
毕业设计作品自己个人还是觉得比较满意的,尽管有些功能考虑的不全面,也没有很好的实现。    HP进修教程文章简介: Php中的目次遍历细说教程 在编写php使用的进程傍边,对指定目次的遍历、文件的挑选是在所不免也是相当主要 的,PHP自己供应懂得析和读取目次的壮大办法。紧紧把握这些办法是每个phper所
   
Php中的目次遍历细说教程  在编写php使用的进程傍边,对指定目次的遍历、文件的挑选是在所不免也是相当主要 的,PHP自己供应懂得析和读取目次的壮大办法。紧紧把握这些办法是每个phper所必需的。本文将对几个主要办法总结和归结,笔者经历尚浅,若有毛病 和疏漏但愿网友们加以斧正,以期配合前进。


函数                               前往类型                                      描写
opendir                          资本句柄                      失掉指定目次的资本句柄
is_dir                              布尔                              判别是不是为目次
is_readable                  布尔                                  给定目次是不是可读
readdir                       字符串                              经由过程资本句柄中读一个文件的文件名,指针后移,假如不存 在或已在最初的话在前往false
closedir                          void                                  封闭资本句柄,释放资本
scandir                           数组                             前往指定目次下一切的文件和目次构成的数组



遍历指定文件夹中的文件


                               
登录/注册后可看大图


该段代码完成对指定目次中文件与目次的的根基遍历,个中readdir 函数读取给定目次资本句柄$handle里的文件并将指针后移,假如已到达最初一个文件的话,则前往false。别的"."代表本层目次".."代表下层目次也会被列出,在大多半情形下咱们需求把他们过滤失落。                    



遍历指定文件夹下指定类型的文件
                 
多半情形下,咱们对目次的遍历常常要受限于某些前提,例如,咱们只需遍历出指定目次下的图象文件或一切的xml文件。为知足下面的请求,咱们重写代码,而且把代码封装到一个函数里。该函数能过滤失落"."和".."和目次,并根具参数前往指定的扩大名的文件。



                               
登录/注册后可看大图



以上函数,可以取得指定目次下指定类型的文件。假如咱们想取得mypics下的一切jpeg和png的文件的话挪用该函数:               

$temp = getFileFrom("./mypics",array('jpeg','png'));

目次树的递归遍历
   我想在php中最适用的递归函数就是对目次的递归遍历了,上面的函数可以取得指定目次的完全布局。同时用scandir取代了opendir来简化代码。               




                               
登录/注册后可看大图


奇异的glob
  glob是php4.3.0后到场的非常壮大的函数,惋惜官方手册上的引见其实不具体。该函数界说以下:               

array glob ( string $pattern [, int $flags = 0 ] )

  glob有两个参数 $pattern 与 可选的 $flag。$pattern 在字面是模板而不是纯真的指定目次的字符串, $flag 是一些常量参数,用来改动glob的行动。               

经由过程理论来进修他的用法。咱们的code1是用来遍历一个目次下一切文件的代码,假如用glob写的话可以如许。               





                               
登录/注册后可看大图


我 们可以看到区分,起首glob要复杂的多,其次glob的第一个参数,"d:/wamp/*"告知glob要查找的文件是"d:/wamp"目次下的一切 文件,因而可知$pattern更像是操作体系的通配符。并且前往的内容中已过滤失落了'.'和'..',假如咱们要找到一切的bmp文件只需把参数写 成"d:/wamp/*.bmp"就能够了,这下子复杂多了。举个罕见的例子,好比咱们的网站下有个文件夹叫wallpaper,上面的每一个目次是 wallpaper的分类,而每个分类下又包括两目次,origin(正常巨细的),和thumb(缩略图),咱们需求一段代码来读取一切分类的一切缩 略图,假如不是用glob将是很费事的一段代码,用glob的话,代码就是上面的模样了:                    


foreach(glob("wallpaper/*/thumb/*") as $fileName){
         ehco $fileName;
}


  glob第二个参数的寄义:                    

GLOB_MARK                             为每个目次添加一个反斜杠
GLOB_NOSORT                      了局不经由排序
GLOB_NOCHECK                  假如没有婚配的了局,则前往模板自己
GLOB_NOSPACE                   Backslashes do not quote metacharacters
GLOB_BRACE                        {a,b,c}分化为a,b,c并分离婚配(主要)
GLOB_ONLYDIR                     仅前往目次
GLOB_ERR                            Stop on read errors (like unreadable directories), by default errors are ignored.



假如咱们要查找图片的文件的话可以如许写                    

foreach(glob("d:/wamp/{*.jpeg,*.jpg,*.gif}", GLOB_BRACE) as $filename){
       echo $filename;
}

  上面的代码是对getFileFrom()函数的改写,代码复杂良多,难点酿成了对$exts参数的解析。               


                               
登录/注册后可看大图


以上是对目次遍历的一个复杂总结,算是团体的进修笔记了,假如也能对人人有所匡助,我很乐意。     
然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)
第二个灵魂 该用户已被删除
沙发
 楼主| 发表于 2015-2-4 00:06:09 | 只看该作者
实践是检验自己会不会的真理。
变相怪杰 该用户已被删除
板凳
发表于 2015-2-9 07:54:06 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
爱飞 该用户已被删除
地板
发表于 2015-2-20 09:13:49 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
只想知道 该用户已被删除
5#
发表于 2015-3-2 14:22:36 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
精灵巫婆 该用户已被删除
6#
发表于 2015-3-3 16:43:56 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
小魔女 该用户已被删除
7#
发表于 2015-3-11 01:37:28 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
兰色精灵 该用户已被删除
8#
发表于 2015-3-11 09:15:24 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
再见西城 该用户已被删除
9#
发表于 2015-3-13 04:09:42 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
小女巫 该用户已被删除
10#
发表于 2015-3-20 12:19:53 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
谁可相欹 该用户已被删除
11#
发表于 2015-3-23 18:14:42 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
灵魂腐蚀 该用户已被删除
12#
发表于 2015-3-24 22:18:50 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
海妖 该用户已被删除
13#
发表于 2015-4-4 02:01:03 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
飘飘悠悠 该用户已被删除
14#
发表于 2015-4-11 05:10:10 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
柔情似水 该用户已被删除
15#
发表于 2015-4-15 06:56:29 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
透明 该用户已被删除
16#
发表于 2015-4-16 00:34:39 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
admin 该用户已被删除
17#
发表于 2015-4-21 22:11:52 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
金色的骷髅 该用户已被删除
18#
发表于 2015-4-25 15:29:02 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
因胸联盟 该用户已被删除
19#
发表于 2015-5-1 08:11:50 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-14 13:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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