php课程 10-34 目录遍历中的注意事项是什么
php课程 10-34 目录遍历中的注意事项是什么
一、总结
一句话总结:用scandir,会把目录和文件放到一个数组中。
1、移动文件怎么实现,php里面没有移动文件这个函数?
先复制,再删除
- 2 //删除目录
- 3 function delDir($dir){
- 4 $files=scandir($dir);
- 5 foreach($files as $key=>$val){
- 6 if($key>1){
- 7 $file=$dir.'/'.$val;
- 8
- 9 if(is_dir($file)){
- 10 delDir($file);
- 11 }else{
- 12 unlink($file);
- 13 }
- 14 }
- 15 }
- 16 rmdir($dir);
- 17 }
- 18
- 19 // 复制目录
- 20 function copyDir($dir1,$dir2){
- 21 mkdir($dir2);
- 22 $files=scandir($dir1);
- 23 foreach($files as $key=>$val){
- 24 if($key>1){
- 25 $file1=$dir1.'/'.$val;
- 26 $file2=$dir2.'/'.$val;
- 27
- 28 if(is_dir($file1)){
- 29 copyDir($file1,$file2);
- 30 }else{
- 31 copy($file1,$file2);
- 32 }
- 33 }
- 34 }
- 35 }
- 36
- 37 //移动目录
- 38 function moveDir($dir1,$dir2){
- 39 copyDir($dir1,$dir2);
- 40 delDir($dir1);
- 41 }
- 42
- 43 $dir1='img';
- 44 moveDir($dir1,'img3');
2、如何删除一个非空目录,php默认函数没有?
rmdir不能删除非空目录
直接百度,找第三方的代码集合
3、目录遍历的时候,为什么没有显示点(.)(本级目录)和点点(..)(上一级目录)?
遍历目录的时候,点(.)和点点(..)是一直都存在的,只不过被影藏了
在dos下敲dir,也会出现点(.)(本级目录)和点点(..)(上一级目录)这两个
无论在windows和linux里面,点和点点都被影藏了
- 7 while($file=readdir($od)){
- 8 if($file!='.' && $file!='..'){
- 9 echo $file.'<br>';
- 10 }
- 11 }
4、如何在一个文件中两次使用opendir,有什么注意事项?
前一次opendir之后必须closedir关闭,后一次的opendir然后才能打开,不然会报错
5、目录遍历,什么函数最好用?
scandir,用scandir,会把目录和文件放到一个数组中。
- 3 $dir='imgs';
- 4
- 5 $arr=scandir($dir);
- 6
- 7 foreach($arr as $key=>$val){
- 8 if($key>1){
- 9 echo $key.'-'.$val.'<br>';
- 10 }
- 11 }
二、目录遍历中的注意事项是什么
1、相关知识
目录操作:
1.遍历目录
opendir();
readdir();
closedir();
scandir();
2.创建空目录
mkdir();
3.删除空目录
rmdir();
4.删除完整目录(delDir)
scandir();
function delDir($dir){
$files=scandir($dir);
foreach($files as $key=>$val){
if($key>1){
$file=$dir.'/'.$val;
if(is_dir($file)){
delDir($file);
}else{
unlink($file);
}
}
}
rmdir($dir);
}
5.复制完整目录(cpDir)
function copyDir($dir1,$dir2){
mkdir($dir2);
$files=scandir($dir1);
foreach($files as $key=>$val){
if($key>1){
$file1=$dir1.'/'.$val;
$file2=$dir2.'/'.$val;
if(is_dir($file1)){
copyDir($file1,$file2);
}else{
copy($file1,$file2);
}
}
}
}
6.移动完整目录(mvDir)
copyDir();
delDir();
2、代码
moveDir移动目录
- <?php
- //删除目录
- function delDir($dir){
- $files=scandir($dir);
- foreach($files as $key=>$val){
- if($key>1){
- $file=$dir.'/'.$val;
- if(is_dir($file)){
- delDir($file);
- }else{
- unlink($file);
- }
- }
- }
- rmdir($dir);
- }
- // 复制目录
- function copyDir($dir1,$dir2){
- mkdir($dir2);
- $files=scandir($dir1);
- foreach($files as $key=>$val){
- if($key>1){
- $file1=$dir1.'/'.$val;
- $file2=$dir2.'/'.$val;
- if(is_dir($file1)){
- copyDir($file1,$file2);
- }else{
- copy($file1,$file2);
- }
- }
- }
- }
- //移动目录
- function moveDir($dir1,$dir2){
- copyDir($dir1,$dir2);
- delDir($dir1);
- }
- $dir1='img';
- moveDir($dir1,'img3');
- ?>
opendir和readdir目录遍历
- <?php
- $dir='imgs';
- $od=opendir($dir);
- while($file=readdir($od)){
- if($file!='.' && $file!='..'){
- echo $file.'<br>';
- }
- }
- ?>
scandir目录遍历
- <?php
- $dir='imgs';
- $arr=scandir($dir);
- foreach($arr as $key=>$val){
- if($key>1){
- echo $key.'-'.$val.'<br>';
- }
- }
- ?>
php课程 10-34 目录遍历中的注意事项是什么的更多相关文章
- DVWA-文件包含-目录遍历学习笔记
参考文献资料: https://www.cnblogs.com/s0ky1xd/p/5823685.html https://www.cnblogs.com/yuzly/p/10799486.html ...
- HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)
参考文献: http://bbs.csdn.net/topics/390952011 http://blog.csdn.net/ljj_9/article/details/53306468 1.下载地 ...
- 炼数成金数据分析课程---10、python中如何画图
炼数成金数据分析课程---10.python中如何画图 一.总结 一句话总结: 主要matplotlib库,pandas中也可以画一些基础图 大纲+实例快速学习法 1.matplotlib的最简单画图 ...
- 【代码审计】711cms_V1.0.5 目录遍历漏洞分析
0x00 环境准备 711CMS官网: https://www.711cms.com/ 网站源码版本:711CMS 1.0.5 正式版(发布时间:2018-01-20) 程序源码下载:https: ...
- 【代码审计】CLTPHP_v5.5.3后台目录遍历漏洞分析
0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...
- 【二叉树遍历模版】前序遍历&&中序遍历&&后序遍历&&层次遍历&&Root->Right->Left遍历
[二叉树遍历模版]前序遍历 1.递归实现 test.cpp: 12345678910111213141516171819202122232425262728293031323334353637 ...
- 【代码审计】大米CMS_V5.5.3 目录遍历漏洞分析
0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...
- Linux课程---10、权限管理(权限有哪几种)
Linux课程---10.权限管理(权限有哪几种) 一.总结 一句话总结: r 读 w 写 x 执行 1.drwxr-x--- 2 root root 4096 Jan 20 19:39 mnt ...
- laravel基础课程---10、数据库基本操作(如何使用数据库)
laravel基础课程---10.数据库基本操作(如何使用数据库) 一.总结 一句话总结: 1.链接数据库:.env环境配置里面 2.执行数据库操作:DB::table('users')->up ...
随机推荐
- Selenium_WebDriver操作iFrame日历框和复选框_Java
iFrame日历框 页面上遇到iFrame元素时,先用findElement找到这个iFrame元素,然后再WebDriver.switchTo().frame(calFrame).在iFrame里操 ...
- Cocos2dx 小技巧(十二) 一种可行的系列动画播放方式
今早发生了一件事让我感觉特气愤!去年的这个时候,我和小伙伴们一起在操场上拍毕业照,之后有个当地报纸的记者来我们学校取材,看到我们后打算给我们拍几张创意张扬点的毕业照.之后呢,照片出来了,拍的效果大伙都 ...
- 如何覆盖GCE的DHCP MTU选项
如何覆盖GCE的DHCP MTU选项 在GCE上托管的Linux IPSec隧道不能打开谷歌,这与MTU有关.谷歌管理员认为"改变这个值是一件困难的事情"https://cl ...
- 59.node的serve-favicon中间件的使用
转自:https://www.zhi-jie.net/node-serve-favicon-use/ 有一个名称为serve-favicon的中间件,可以用于请求网页的favicon图标.譬如如下的使 ...
- 为root账户更名
为root账户更名 处于安全考虑许多管理员想把root更名,具体方法如下: 1.先以root登陆系统 2.用vi 编辑/etc/passwd文件,将第一行的第一个root修改为你想要的账户名,然后保存 ...
- chsh---更换登录系统时使用的shell
chsh命令 chsh命令用来更换登录系统时使用的shell.若不指定任何参数与用户名称,则chsh会以应答的方式进行设置. 语法 chsh(选项)(参数) 选项 -s<shell 名称&g ...
- python 补0的方法
# 方法一 z = 'bb' z.zfill(6) ----'0000bb' n = ' n.zfill(5) ----' # 方法二 ' " ---- '报错' # 方法的区别 方法二只能 ...
- win8用久了变得非常慢, 磁盘占用100%
完美解决方式: 直接重装win7 完美解决这个问题 在网上查了非常久也没找到有效方法, 求教
- animation- 动画效果实现(xml形式实现)
1.定义xml动画 1)在anim文件夹下定义xml文件 解释:这个文件夹下面的文件会被默认为动画文件,如果这个文件不存在,需要自己创建 display_result_anim.xml <?xm ...
- H5+混合移动app
H5+混合移动app 前言 经过2个多月的艰苦奋斗,app的第一个版本已经快完工了,期间遇到了太多的坑,作为一个喜欢分享的人,我当然不会吝啬分享这爬坑历程.不要问我有多坑,我会告诉你很多,很多.... ...