php目录函数
Ⅰ 写一个php函数,可以遍历目录下面的所有文件及子文件夹并修改后缀名
可以用递归的方式,还有别的方式能实现
function my_dir($dir)
{
$files = array();
if (@$handle = opendir($dir)) {
while (($file = readdir($handle)) !== false) {
if ($file != ".." && $file != ".") {
if (is_dir($dir . "/" . $file)) {
$files[$file] = my_dir($dir . "/" . $file);
} else {
$files[] = $file;
}
}
}
closedir($handle);
return $files;
}
}
Ⅱ 关于使用php生成目录的问题。求高手给出函数代码
写的有点多,但是应该是实现了,a文件夹的数量是没有控制的
$path1=__DIR__;//一级目录所在路径
$dir_arr1=scandir($path1);//一级目录所在路径的所有文件和文件夹
$count1=getDirCount($dir_arr1,$path1);//一级目录个数
$x=0;//1级目录索引
if($count1==0){
mkdir('a0',0777);
}
if($count1>1){
$x=$count1-1;
}
$path2=$path1."/a".$x;//二级目录所在路径
$dir_arr2=scandir($path2);//二级目录所在路径的所有文件和文件夹
$count2=getDirCount($dir_arr2,$path2);//二级目录个数
$y=0;//二级目录索引
if($count2==0){
mkdir($path2.'/b0',0777);
}
if($count2>1){
$y=$count2-1;
}
$path3=$path1."/a".$x."/b".$y;//三级目录所在路径
$dir_arr3=scandir($path3);//三级目录所在路径的所有文件和文件夹
$count3=getDirCount($dir_arr3,$path3);//三级目录个数
$z=0;//三级目录索引
if($count3==0){
mkdir($path3.'/c0',0777);
}
if($count3>1){
$z=$count3-1;
}
$path4=$path1."/a".$x."/b".$y."/c".$z;
$dir_arr4=scandir($path4);//三级目录所在路径的所有文件和文件夹
print_r($dir_arr4);
$count4=getFileCount($dir_arr4,$path4);//获取文件数量
//当c文件夹中的文件数量大于等于5个则需要创建下一个c文件夹
if($count4>=5){
//判断c文件夹是不是已经有五个了
if($z>=4){
//如果c文件夹5个了,就需要创建下一个b文件夹
if($y>=4){
//如果b文件夹5个了,就创建下一个a文件夹和b0,c0
$path4=$path1.'/a'.($x+1).'/b0/c0';
mkdir($path4,0777,true);
}else{
//如果b文件夹不到5个就创建下一个b,和c0
$path4=$path2.'/b'.($y+1).'/c0';
mkdir($path4,0777,true);
}
}else{
//如果c文件夹还不到五个就创建c
$path4=$path3.'/c'.($z+1);
mkdir($path4,0777);
}
}
//往c文件夹里写数据
file_put_contents($path4.'/'.time().'.txt','123');
functiongetDirCount($arr,$path){
$dir_count=0;
foreach($arras$val){
if($val!='.'&&$val!='..'&&is_dir($path."/".$val)){
$dir_count+=1;
}
}
return$dir_count;
}
functiongetFileCount($arr,$path){
$file_count=0;
foreach($arras$val){
if($val!='.'&&$val!='..'&&is_file($path."/".$val)){
$file_count+=1;
}
}
return$file_count;
}
Ⅲ php中的几个判断文件和目录的函数 is
is_file("mydoc.txt")判断文件名是否是合法的文件,目录不行;
is_dir(" "),判断目录是否存在,文件名不行。mkdir(""),产生一个新的目录。
file_exists(),检查文件和目录是否存在。目录或文件名都行。
Ⅳ PHP的扫描目录函数scandir(),这个地方没有看懂,有知道的朋友吗
is_dir()函数用于检测是不是目录!
如果只是写$item, 那参数就只是个目录或者文件名称, 没有指明目录的具体路径, 那is_dir永远会返回false的
后面 首先是查找返回字符, substr, 第一个参数要查找的字符串, 第二个参数是查找的开始位置, 第三个参数是返回的长度, 结果就是 返回第一个字符,
那么, 恭喜你, 回答正确,确实是检查首字符不是圆点
Ⅳ php 目录遍历、删除 函数的使用介绍
小编今天没事写了目录想关的函数
包括
遍历该文件夹下的文件,目录子目录
读取当前文件下目录和文件
删除当前文件夹下的目录子目录以及文件
以上三个函数目前还不支持中文文件
中文目录
复制代码
代码如下:
<?php
header("Content-type:text/html;charset=utf-8");
/**
*
读取当前目录下的文件和目录
*
*
@param
string
$path
路径
*
@return
array
所有满足条件的文件
*/
function
tlist($path){
$path
=
iconv('utf-8',
'gbk',
$path);
if(!is_dir($path)){
throw
new
Exception($path."不是目录");
}
$arr
=
array('dir'=>array(),'file'=>array());
$hd
=
opendir($path);
while(($file
=
readdir($hd))!==false){
if($file=="."||$file=="..")
{continue;}
if(is_dir($path."/".$file)){
$arr['dir'][]
=
iconv('gbk','utf-8',$file);
}else
if(is_file($path."/".$file)){
$arr['file'][]
=
iconv('gbk','utf-8',$file);
}
}
closedir($hd);
echo
"目录有:".implode("<br
/>",$arr['dir'])."<br
/>";
echo
"文件有:".implode("<br
/>",$arr['file']);
}
/**
*
遍历当前目录下的文件和目录以及子文件夹中目录
*
*
@param
string
$path
路径
*
@return
array
所有满足条件的文件
*/
function
blist($path){
if(!is_dir(iconv("utf-8","gbk",$path))){
throw
new
Exception("文件夹".$path."不存在或者不是文件");
}
$arr
=
array();
$hd
=
opendir(iconv("utf-8","gbk",$path));
while(($file
=
readdir($hd))!==false){
if($file=="."||$file=="..")
{continue;}
$newpath=iconv('utf-8',
'gbk',
$path)
.'/'.$file;
if(is_dir($newpath)){
$arr[]
=
blist($path."/".$file);
}else
if(is_file($newpath)){
$arr[]
=
iconv('gbk','utf-8',$file);
}
}
closedir($hd);
return
$arr;
}
/**
*
删除目录下的文件以及子目录
*
#param
string
$path
路径
*
#return
string
删除成功返回true
失败返回false;
*/
function
dirDel($path){
if(!is_dir($path)){
throw
new
Exception($path."输入的不是有效目录");
}
$hand
=
opendir($path);
while(($file
=
readdir($hand))!==false){
if($file=="."||$file=="..")
continue;
if(is_dir($path."/".$file)){
dirDel($path."/".$file);
}else{
@unlink($path."/".$file);
}
}
closedir($hand);
@rmdir($path);
}
?>
Ⅵ php对目录进行操作时,先用哪个函数对操作目录进行是否存在的判断
file_exists — 检查文件或目录是否存在
说明
bool file_exists ( string $filename )
检查文件或目录是否存在。
参数
filename
文件或目录的路径。
在 Windows 中要用 //computername/share/filename 或者 \\computername\share\filename 来检查网络中的共享文件。
返回值
如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE。
Note:
This function will return FALSE for symlinks pointing to non-existing files.
Warning
如果因为安全模式的限制而导致不能访问文件的话,该函数会返回 FALSE。然而,可以使用 include 来包含,如果文件在 safe_mode_include_dir 所指定的目录里。
Note:
The check is done using the real UID/GID instead of the effective one.
Note: 因为 PHP 的整数类型是有符号整型而且很多平台使用32位整型, 对2GB以上的文件,一些文件系统函数可能返回无法预期的结果 。
范例
Example #1 测试一个文件是否存在
<?php
$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
echo "文件 $filename 存在";
} else {
echo "文件 $filename 不存在";
}
?>
//以上内容来自官方PHP开发帮助文档
Ⅶ php中有没有一个删除非空目录的系统函数
有了这个小程序,PHPer就不用手动进行删除计算机上的目录文件了,在练习PHP目录文件操作时就可以用这个函数,在这个基础上还可以增加浏览文件夹目录,然后进行删除。 代码一: 复制代码 代码如下: <?php function d_rmdir($dirname) { //删除非空目录 if(!is_dir($dirname)) { return false; } $handle = @opendir($dirname); while(($file = @readdir($handle)) !== false){ if($file != '上面收集的,还是手册里的好 代码三: 复制代码 代码如下: functionremoveDir($dirName) { if(!is_dir($dirName)) { returnfalse; } $handle=@opendir($dirName); while(($file=@readdir($handle))!==false) { if($file!='.'&&$file!='..') { $dir=$dirName.'/'.$file; is_dir($dir)?removeDir($dir):@unlink($dir); } } closedir($handle); returnrmdir($dirName); } ?>
Ⅷ php中哪个函数可以取得某目录下的所有文件名
没有这样的函数,只能自己实现,下面是我常用的,这个不仅会获取到当前目录下的所有文件,而且还会遍历所有子文件夹下的文件。
<?php
functionread_all_dir($dir)
{
$result=array();
$handle=opendir($dir);
if($handle)
{
while(($file=readdir($handle))!==false)
{
if($file!='.'&&$file!='..')
{
$cur_path=$dir.DIRECTORY_SEPARATOR.$file;
if(is_dir($cur_path))
{
$result['dir'][$cur_path]=read_all_dir($cur_path);
}
else
{
$result['file'][]=$cur_path;
}
}
}
closedir($handle);
}
return$result;
}
?>
Ⅸ PHP中,什么函数可以统计一个目录中共有多少个文件
$arr = scandir($dir);
$all = count($arr)-2;//所有文件总数除./和../
$php = count(preg_grep("/\.php$/", $arr));
$txt0 = $all - count(preg_grep("/\.txt$/", $arr));
echo '共有'.$all.'个文件,php文件'.$php.'个,非txt文件'.$txt0.'个';
希采纳
Ⅹ php中目录操作opendir()、readdir()及scandir()用法示例
本文实例讲述了php中目录操作opendir()、readdir()及scandir()用法。分享给大家供大家参考,具体如下:
opendir(path,context)若成功,则该函数返回一个目录流,否则返回
false
以及一个
error。可以通过在函数名前加上
“@”
来隐藏
error
的输出。
readdir()
函数返回由
opendir()
打开的目录句柄中的条目。若成功,则该函数返回一个文件名,否则返回
false。
scandir()
函数返回一个数组,其中包含指定路径中的文件和目录。
若成功,则返回一个数组,若失败,则返回
false。如果
directory
不是目录,则返回布尔值
false
付上2段搜到的读取目录的代码,亲测有效
显示目录中文件名
//
打开目录,然后读取其内容
if
(is_dir($dir)){
if
($dh
=
opendir($dir)){
while
(($file
=
readdir($dh))
!==
false){
echo
"filename:"
.
$file
.
"<br>";
}
closedir($dh);
}
}
拷贝一个目录的文件到另一个目录
_dir($from_dir,$to_dir);
function
_dir($from_dir,$to_dir){
if(!is_dir($from_dir)){
return
false;
}
echo
"\r\n
from:",$from_dir,'---to',$to_dir;
$from_files
=
scandir($from_dir);
//如果不存在目标目录,则尝试创建
if(!file_exists($to_dir)){
@mkdir($to_dir);
}
if(!empty($from_files)){
foreach
($from_files
as
$file){
if($file
==
'.'
||
$file
==
'..'
){
continue;
}
if(is_dir($from_dir.'/'.$file)){//如果是目录,则调用自身
_dir($from_dir.'/'.$file,$to_dir.'/'.$file);
}else{//直接到目标文件夹
($from_dir.'/'.$file,$to_dir.'/'.$file);
}
}
}
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP目录操作技巧汇总》、《php文件操作总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:使用PHP函数scandir排除特定目录PHP获取当前文件所在目录
getcwd()函数php文件夹与文件目录操作函数介绍php中判断文件空目录是否有读写权限的函数代码PHP解析目录路径的3个函数总结PHP使用glob函数遍历目录或文件夹的方法php
file_exists
检查文件或目录是否存在的函数PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结PHP删除非空目录的函数代码小结PHP目录函数实现创建、读取目录教程实例php使用scandir()函数扫描指定目录下所有文件示例