本文作者:qiaoqingyi

PHP教程Directory函数(php files函数)

qiaoqingyi 2023-03-30 536

本篇文章给大家谈谈PHP教程Directory函数,以及php files函数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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);

}

}

拷贝一个目录的文件到另一个目录

copy_dir($from_dir,$to_dir);

function

copy_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)){//如果是目录,则调用自身

copy_dir($from_dir.'/'.$file,$to_dir.'/'.$file);

}else{//直接copy到目标文件夹

copy($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()函数扫描指定目录下所有文件示例

PHP教程Directory函数(php files函数)

PHP5教程之文件操作

一 引论

在任何计算机设备中 文件是都是必须的对象 而在web编程中 文件的操作一直是web程序员的头疼的地方 而 文件的操作在cms系统中这是必须的 非常有用的 我们经常遇到生成文件目录 文件(夹)编辑等操作 现在我把php中的这些函数做一详细总结并实例示范如何使用 关于对应的函数详细介绍 请查阅php手册 此处只总结重点 和需要注意的地方 (这在php手册是没有的 )( lian )

二 目录操作

首先介绍的是一个从目录读取的函数 opendir() readdir() closedir() 使用的时候是先打开文件句柄 而后迭代列出:

?php $base_dir = filelist/ ; $fso = opendir($base_dir); echo $base_dir hr/ ; while($flist=readdir($fso)){ echo $flist br/ ; } closedir($fso) ? 

这是讲返回文件目录下面的文件已经目录的程序( 文件将返回false)

有时候需要知道目录的信息 可以使用dirname($path)和basename($path) 分别返回路径的目录部分和文件名名称部分 可用disk_free_space($path)返回看空间空余空间

创建命令:

mkdir($path )

是权限码 在非window下可用umask()函数设置

rmdir($path)

将删除路径在$path的文件

dir directory 类也是操作文件目录的重要类 有 个方法 read rewind close 这是一个仿面向对象的类 它先使用的是打开文件句柄 然后用指针的方式读取的 这里看php手册:

?php$d = dir( /etc/php );echo Handle: $d handle /n ;echo Path: $d path /n ;while (false !== ($entry = $d read())) {    echo $entry /n ;}$d close();?

输出:

Handle: Resource id # Path: /etc/php apachecgicli

文件的属性也非常重要 文件属性包括创建时间 最后修改时间 所有者 文件组 类型 大小等

下面我们重点谈文件操作

三 文件操作

A 读文件

首先是一个文件看能不能读取(权限问题) 或者存在不 我们可以用is_readable函数获取信息

?php$file = dirlist php ;if (is_readable($file) == false) {         die( 文件不存在或者无法读取 );} else {         echo 存在 ;}?

判断文件存在的函数还有file_exists(下面演示) 但是这个显然无is_readable全面 当一个文件存在的话可以用

?php$file = filelist php ;if (file_exists($file) == false) {         die( 文件不存在 );}$data = file_get_contents($file);echo entities($data);?

但是file_get_contents函数在较低版本上不支持 可以先创建文件的一个句柄 然后用指针读取全部:

$fso = fopen($cacheFile r );         $data = fread($fso filesize($cacheFile));         fclose($fso);

还有一种方式 可以读取二进制的文件:

$data = implode( file($file));

B 写文件

和读取文件的方式一样 先看看是不是能写:

?php$file = dirlist php ;if (is_writable($file) == false) {         die( 我是鸡毛 我不能 );}?

能写了的话可以使用file_put_contents函数写入:

?php $file = dirlist php ; if (is_writable($file) == false) { die( 我是鸡毛 我不能 ); } $data = 我是可鄙 我想要 ; file_put_contents ($file $data); ? 

file_put_contents函数在php 中新引进的函数(不知道存在的话用function_exists函数先判断一下)低版本的php无法使用 可以使用如下方式:

$f = fopen($file w ); fwrite($f $data); fclose($f); 

替换之

写文件的时候有时候需要锁定 然后写:

function cache_page($pageurl $pagedata){ if(!$fso=fopen($pageurl w )){ $this warns( 无法打开缓存文件 );//trigger_error return false; } if(!flock($fso LOCK_EX)){//LOCK_NB 排它型锁定 $this warns( 无法锁定缓存文件 );//trigger_error return false; } if(!fwrite($fso $pagedata)){//写入字节流 serialize写入其他格式 $this warns( 无法写入缓存文件 );//trigger_error return false; } flock($fso LOCK_UN);//释放锁定 fclose($fso); return true; } 

C 复制 删除文件

php删除文件非常easy 用unlink函数简单操作:

?php $file = dirlist php ; $result = @unlink ($file); if ($result == false) { echo 蚊子赶走了 ; } else { echo 无法赶走 ; } ? 

即可

复制文件也很容易:

?php $file = yang txt ; $newfile = ji txt ; # 这个文件父文件夹必须能写 if (file_exists($file) == false) { die ( 小样没上线 无法复制 ); } $result = copy($file $newfile); if ($result == false) { echo 复制记忆ok ; } ? 

可以使用rename()函数重命名一个文件夹 其他操作都是这几个函数组合一下就能实现的

D 获取文件属性

我说几个常见的函数:

获取最近修改时间:

?php $file = test txt ; echo date( r filemtime($file)); ? 

返回的说unix的时间戳 这在缓存技术常用

相关的还有获取上次被访问的时间fileatime() filectime()当文件的权限 所有者 所有组或其它 inode 中的元数据被更新时间 fileowner()函数返回文件所有者

$owner = posix_getpwuid(fileowner($file));

(非window系统) ileperms()获取文件的权限

?php$file = dirlist php ;$perms = substr(sprintf( %o fileperms($file)) );echo $perms;?

filesize()返回文件大小的字节数:

?php

// 输出类似 somefile txt: bytes

$filename = somefile txt ; echo $filename : filesize($filename) bytes ;

获取文件的全部信息有个返回数组的函数stat()函数:

?php $file = dirlist php ; $perms = stat($file); var_dump($perms); ? 

那个键对应什么可以查阅详细资料 此处不再展开

四 结束语

lishixinzhi/Article/program/PHP/201311/21262

PHP列出目录中的目录和文件的几种方法

?php        

/**      

* PHP中列出目录中的目录和文件的几种方法      

*/       

//兼容PHP4和PHP5的写法        

function getFileList($directory) {        

    $files = array();        

    if(is_dir($directory)) {        

        if($dh = opendir($directory)) {        

            while(($file = readdir($dh)) !== false) {        

                if($file != '.'  $file != '..') {        

                    $files[] = $file;        

                }        

            }    

            closedir($dh);        

        }        

    }        

    return $files;        

}        

       

//PHP5中的简单方法        

function getFileList2($directory) {        

    $files = array();        

    if(is_dir($directory)) {        

        if($files = scandir($directory)) {        

            $files = array_slice($files,2);        

        }        

    }        

    return $files;        

}        

       

//使用PHP5面向对象的写法        

function getFileList3($directory) {        

    $files = array();        

    try {        

        $dir = new DirectoryIterator($directory);        

    } catch (Exception $e) {        

        throw new Exception($directory . ' is not readable');        

    }        

    foreach($dir as $file) {        

        if($file-isDot()) continue;        

        $files[] = $file-getFileName();        

    }        

    return $files;        

}        

       

//测试代码        

$dir = dirname(__FILE__);        

var_dump(getFileList($dir));        

?

关于PHP教程Directory函数和php files函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

阅读
分享