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 ...
随机推荐
- CF 246 div2 D Prefixes and Suffixes (全部前缀的出现次数)
题目链接:http://codeforces.com/contest/432/problem/D 题意:对一个长度不超过10^5的字符串.按长度输出和后缀全然匹配的的前缀的长度,及该前缀在整个串中出现 ...
- Android 学习笔记之Bitmap位图的旋转
位图的旋转也可以借助Matrix或者Canvas来实现. 通过postRotate方法设置旋转角度,然后用createBitmap方法创建一个经过旋转处理的Bitmap对象,最后用drawBitmap ...
- 如何优雅地关闭一个socket
最近在windows编程时需要考虑到“如何优雅地关闭一个socket”,查阅了一些资料,现将查到的相关资料做个汇编,希望能对后来者有所帮助(比较懒,所以英文资料没有翻译:-)) 1. 关闭Socket ...
- 缓存函数memorize
function mulity(x){ return x*x; } function memorize(f){ var cache = {}; var key = arguments.length + ...
- Kinect 开发 —— 引言
自然人机交互设计技术 (全息三维投影,手势肢体识别,眼动跟踪 ...) 符合人类心理的交互方式 自然用户界面 —— Natural User Interface 有机用户界面 —— Organic U ...
- spring webSocket The HTTP response from the server [200] did not permit the HTTP upgrade to WebSocket
在springboot 1.5.9版本 WebSocketConfig配置 registry.addEndpoint("/webSocket").withSockJS();在加了. ...
- RLF。HRLF解释
- Python Web框架要点
1. Web应用程序处理流程 前端客户端(浏览器.APP.ajax.爬虫程序)>>>--http的请求与响应--<<<服务器程序(Gunicorn.uwsig)&l ...
- C# 将引用的DLL文件放到指定的目录下
原文:C# 将引用的DLL文件放到指定的目录下 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sweety820/article/details/2 ...
- 【习题 8-1 UVA - 1149】Bin Packing
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每个背包只能装两个东西. 而且每个东西都要被装进去. 那么我们随意考虑某个物品.(不必要求顺序 这个物品肯定要放进某个背包里面的. ...