php怎么打开本地文件夹?php读取目录及子目录下所有文件名的方法
本文实例讲述了php读取目录及子目录下所有文件名的方法,分享给大家供大家参考。具体实现方法如下:
一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:
代码如下 | 复制代码 |
$dir="./caxa/"; $file=scandir($dir); print_r($file); |
稍微复杂点的,来自于php手册:
代码如下 | 复制代码 |
$dir = "/etc/php5/"; // Open a known directory, and proceed to read its contents if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; } closedir($dh); } } |
这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用&$data的地方,如下所示:
代码如下 | 复制代码 |
function searchDir($path,&$data){ if(is_dir($path)){ $dp=dir($path); while($file=$dp->read()){ if($file!='.'&& $file!='..'){ searchDir($path.'/'.$file,$data); } } $dp->close(); } if(is_file($path)){ $data[]=$path; } } function getDir($dir){ print_r(getDir('.')); |
本文详细介绍了html静态页面调用php文件的方法,非常实用,有兴趣的同学可以参考一下。
在HTML里面调用动态模块,比如浏览次数,除了使用JS/AJAX可以实现,还可以利用JS调用PHP的脚本来实现,而且还可以传递参数给服务器。笔者在这儿做一下纪录,一者加深印象,二者方便初学者查阅。
笔者在做整合的友情链接模块中,使用到了该方面知识。
1. 调用格式
代码如下 | 复制代码 |
<scriptsrc="./friendLink/script.php"type="text/javascript"><!--mce:0--></script> |
2. 实例应用
笔者这里先介绍一下实例。我乐邯郸使用了康盛的SUPESITE7.0、DISCUZ7.0、UCHOME三个系统,三个系统中的友情链接模块相互独立。笔者需要把这三个系统的友情链接模块整合到一起。友情链接管理模块这里不谈,只给出调用脚本script.php的代码。
代码如下 | 复制代码 |
include'./FL_inc/friendLink.inc.php';2:$xml = simplexml_load_file('./FL_data/data.xml');3:$position = $_GET['position'];4:foreach($xml->friendLinkas$flinks) {5:if($flinks['position'] == $position && $flinks['isImage'] == 0){6:echo'document.write(/'<a href="',$flinks->url,'" target="_blank">',u2gIconv($flinks->name),'</a> /');';7:}elseif($flinks['position'] == $position && $flinks['isImage'] == 1){8:echo'document.write(/'<a href="',$flinks->url,'" target="_blank"><img title="',u2gIconv($flinks->name),'" src="',$flinks->logoPath,'" border="0" alt="" /></a> /');';9:}10:} |
笔者需要在3个系统的默认友情链接部分,使用JS调用script.php脚本,并且传递系统标识符给script.php脚本。
代码如下 | 复制代码 |
<script src="./FriendLink/script.php?position=supe"type="text/javascript"></script>2:<script src="./FriendLink/script.php?position=bbs"type="text/javascript"></script>3:<script src="./FriendLink/script.php?position=home"type="text/javascript"></script> |
这样就轻松实现了友情链接集中管理功能。
1、PHPer应具备的知识
(1)PHP知识:
熟练掌握基础函数,PHP语句(条件、循环),数组(排序、读取),函数(内部 构造),运算(数学 逻辑),面向对象(继承 接口 封装 多态静态属性)等。
了解Cookie或者Session一种机制
了解一种模板操作机制和使用
手头收藏一些好的常用类或方法,能提高我们的开发的速度。如:分页、上传、字符过滤、数据库操作、生成HTML、文件操作等。
(2)HTML知识
(3)JavaScript事件处理
(4)数据库知识:SQL语句“增删改查” 会使用一种SQL工具
-----------------------------------------------------------------------------------------------
2、PHP开发的一般流程
(1)尽量完整的需求方案,具体到功能上:
(2)建模结构UML
(3)建立数据库:
1、建立的表名、字段名要与他的功能有关系。
2、根据结构建立数据库表,原则是不定项内容一定要分表。
3、字段类型要考虑内容是否够用就够就好,选择适合的类型INT Varchar Date
(4)设计HTML文件和脚本的实现
根据模和数据库来设计页面是个很科学的方法,当然有的时候有人喜欢根据模型设计页面,数据库基于页面设计,都是可以的。
设计页面时要考虑到每个细节,包括提示消息页面,错误页面。
(5)PHP代码的书写
1、先建立底层结构和文件夹(如果是大型的网站同样设计一个文件UMML)
2、基础功能分类关联,以便今后代码引用。
3、代码的书写,注意简洁性和函数的使用,内部函数能实现的尽量使用内部函数。
4、在部分关键位置加以代码注释。
(6)程序的测试和修正
1、对于发现的BUG不能就解决BUG而解决,要处于完整程序考虑。避免收之东隅收之桑榆。
2、对于解决过的BUG已经要详细记录,以便日后更新。
-------------------------------------------------------------------------------------------------
3、多人开发应该注意什么
使用版本服务器:CVS、SVN...
功能:
1、单个文件历史版本的记录和恢复
2、文件的锁定和更新
3、单个或多个文件程序之间的沟通
4、保护程序的安全性不受单个程序的误操作而丢失
一、jquery实现方法:
代码如下 | 复制代码 |
MessageAction.class.php页面代码如下: <?php class MessageAction extends Action{ function index(){ $this->display(); } function add(){ //ajaxReturn(数据,'提示信息',状态) $m=M('message'); if($m->add($_GET)){ $this->ajaxReturn($_GET,'添加信息成功',1); }else{ $this->ajaxReturn(0,'添加信息失败',0); } } } ?> |
模板index.html代码如下:
代码如下 | 复制代码 |
<html> <head> <script type="text/javascript" src="__PUBLIC__/js/jquery-1.7.1.min.js"></script> <script type="text/javascript"> $(function(){ $('input:button').click(function(){ var $title=$('input[name="title"]').val(); var $message=$('input[name="message"]').val(); $mess=$('#mess'); $.getJSON('__URL__/add',{title:$title,message:$message},function(json){ //alert(json);return false; if(json.status==1){ $mess.slideDown(3000,function(){ $mess.css('display','block'); }).html('标题为'+json.data.title+'信息为'+json.data.message); }else{ $mess.slideDown(3000,function(){ $mess.css('display','block'); }).html('信息添加失败,请检查'); } }); }) }) </script> </head> <body> <div style="display:none; color:red;" id="mess"></div> <form action="" method="get"> 标题:<input type="text" name="title" /><br /> 信息:<input type="text" name="message" /><br /> <input type="button" value="提交" /> </form> </body> </html> |
二、ThinkPHP实现方法:
MessageAction.class.php页面代码如下:
代码如下 | 复制代码 |
<?php class MessageAction extends Action{ function index(){ $this->display(); } function addtwo(){ $m=M('message'); if($vo=$m->create()){ if($m->add()){ $this->ajaxReturn($vo,'添加成功',1); }else{ $this->ajaxReturn(0,'添加失败',0); } }else{ $this->error($m->getError()); } } } ?> |
模板index.html代码如下:
代码如下 | 复制代码 |
<html> <head> <script type="text/javascript" src="__PUBLIC__/Js/Base.js"></script> <script type="text/javascript" src="__PUBLIC__/Js/prototype.js"></script> <script type="text/javascript" src="__PUBLIC__/Js/mootools.js"></script> <script type="text/javascript" src="__PUBLIC__/Js/ThinkAjax.js"></script> <script type="text/javascript"> function add(){ //ThinkAjax.sendForm(表单ID,URL,回调函数,信息显示的地方); ThinkAjax.sendForm('frm','__URL__/addtwo',wc); } function wc(data,status){ if(status!=1){ alert('发送失败'); }else{ $('list').innerHTML+='标题'+data.title+',信息'+data.message; } } </script> </head> <body> <div id="list"></div> <form action="" method="POST" id="frm"> 标题:<input type="text" name="title" /><br /> 信息:<input type="text" name="message" /><br /> <input type="button" value="提交" onClick="add()" /> </form> </body> </html> |
感兴趣的朋友可以测试运行一下本文所示实例,可以加深对Ajax应用的理解。
相关文章
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
- 这篇文章主要介绍了cmd下过滤文件名称的两种方法,需要的朋友可以参考下...2020-06-30
- 在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
- 这篇文章主要介绍了c# 如何对CSV文件操作,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下...2020-11-03
- 本文主要介绍了python读取和保存mat文件的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-25
- 首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置: 在AndroidManifest.xml中加入访问SDCard的权限如下: <!--...2016-09-20
使用GetInvalidFileNameChars生成文件名
这篇文章主要介绍了一个很实用的函数Path.GetInvalidFileNameChars(),他可以很方便的生成一个有效的文件名称...2020-06-25- 这篇文章主要介绍了解决IDEA target文件夹越来越大的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- perl CPAN中有一个Tie-File 模块极大方便了对大文件的操作...2020-06-29
使用MSScriptControl 在 C# 中读取json数据的方法
下面小编就为大家带来一篇使用MSScriptControl 在 C# 中读取json数据的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25- 这篇文章主要介绍了C#实现appSettings节点读取与修改的方法,是非常实用的技巧,需要的朋友可以参考下...2020-06-25
C#使用FolderBrowserDialog类实现选择打开文件夹方法详解
这篇文章主要介绍了C#选择文件夹/打开文件夹/浏览文件夹等代码方法,大家参考使用...2020-06-25- 这篇文章主要介绍了C#编程实现获取文件夹中所有文件的文件名,可实现获取特定目录下制定类型文件名称的功能,涉及C#针对文件与目录的遍历、查询等操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Linux下统计当前文件夹下的文件个数、目录个数,本文使用ls命令配合管理、grep命令实现统计需求,需要的朋友可以参考下...2020-07-11
- 为大家分享的第一个操作内容: 遍历并打印指定目录下所有文件 <?php //功能:遍历并打印指定目录下所有文件 function scan_dir($dir_name,$dir_flag=1) { static $FILE_COUNT=1; //记录文件数目 初值为1...2015-11-08
- 本文主要介绍了Java读取PDF中的表格的方法示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-22
- 这篇文章主要介绍了C#编程实现统计文件夹内文件和隐藏文件的方法,结合具体实例形式分析了C#针对文件与目录的遍历及属性操作相关技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了R语言读取csv文件出错的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 这篇文章主要介绍了C#中文件名或文件路径非法字符判断方法,本文主要使用了内置的GetInvalidFileNameChars方法实现非法字符判断,需要的朋友可以参考下...2020-06-25