当前位置:首页 > 软件开放 > 正文内容

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

软件开放2年前 (2023-03-30)950

本篇文章给大家谈谈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()函数扫描指定目录下所有文件示例

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函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://zspsrg.cn/post/14637.html

分享给朋友:

“PHP教程Directory函数(php files函数)” 的相关文章

ja**软件开发工具(jappo)

ja**软件开发工具(jappo)

今天给各位分享ja**软件开发工具的知识,其中也会对jappo进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、Java中常用的开发工具有哪些 2、java软件开发用什么软件? 3、软件开发工具有哪些 4、常见的十五种Java开发工具是什么,有什么...

常用软件开发工具(软件开发工具大全)

常用软件开发工具(软件开发工具大全)

今天给各位分享常用软件开发工具的知识,其中也会对软件开发工具大全进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、软件开发工具都有哪些? 2、常用的编程软件有那些 3、软件开发工具有哪些? 软件开发工具都有哪些? 软件开发工具依照工具的功能有以下这些...

温州软件开发(温州软件开发公司有哪些)

温州软件开发(温州软件开发公司有哪些)

今天给各位分享温州软件开发的知识,其中也会对温州软件开发公司有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、软件开发工程师一个月多少钱在温州 2、温州蓝帆软件开发有限公司怎么样? 3、在温州搞软件开发有前途吗 4、温州姿迪软件开发有限公司怎...

发行数字藏品需要什么手续(数字藏品能升值吗)

发行数字藏品需要什么手续(数字藏品能升值吗)

本篇文章给大家谈谈发行数字藏品需要什么手续,以及数字藏品能升值吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、数字藏品怎么制作 2、朋友支招怎么做数字藏品? 3、数字藏品银行申请流程 4、用稀台元宇宙saas经营数字藏品需要具备什么资质? 5、国家支持数...

怎么自己制作app软件(怎么自己制作app软件上市)

怎么自己制作app软件(怎么自己制作app软件上市)

本篇文章给大家谈谈怎么自己制作app软件,以及怎么自己制作app软件上市对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、如何自学开发app软件 2、如何创建app平台 3、如何制作开发一个软件? 如何自学开发app软件 没有编程基础的话,可以从编程的入门开始学,...

eclipse学java选哪个安装(怎样安装java和eclipse)

eclipse学java选哪个安装(怎样安装java和eclipse)

本篇文章给大家谈谈eclipse学java选哪个安装,以及怎样安装java和eclipse对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、我是JAVA初学者Eclipse 用哪个版本? 2、想在Eclipse中学习javaswing开发,请问要安装哪些开发软件 3...