好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php目录操作类 php分类目录

很多站长朋友们都不太清楚php目录操作类,今天小编就来给大家整理php目录操作类,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php对目录进行操作时,先用哪个函数对操作目录进行是否存在的判断 2、 PHP5教程之文件操作 3、 php中目录操作opendir()、readdir()及scandir()用法示例 4、 PHP面试题之文件目录操作 5、 php目录操作实例代码 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开发帮助文档

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中目录操作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面试题之文件目录操作

这道题其实并不难,考点主要在函数substr()

strrchr()

array_pop()

strrpos()

strpos()

strrev()

explode()

pathinfo()。

废话不多说了,直接给大家贴代码了。

获取文件后缀,遍历目录层次

/**

*

5种方式获取文件后缀名

*

这道题其实就是考函数substr()

strrchr()

array_pop()

strrpos()

strpos()

strrev()

explode()

pathinfo()

*

@param

string

$filename

要处理的文件名

1.jpg/1.png/1.html/1.php

*

@return

string

.php/php

*/

function

get_ext1($filename)

{

return

strrchr($filename,'.');

}

function

get_ext2($filename){

return

substr($filename,strrpos($filename,'.'));

}

function

get_ext3($filename){

return

array_pop(explode('.',$filename));

}

function

get_ext4($filename){

return

pathinfo($filename,PATHINFO_EXTENSION);

}

function

get_ext5($filename){

return

strrev(substr(strrev($filename),0,strpos(strrev($filename),'.')));

}

$filename

=

"1.php";

echo

get_ext1($filename)."\n";

echo

get_ext2($filename)."\n";

echo

get_ext3($filename)."\n";

echo

get_ext4($filename)."\n";

echo

get_ext5($filename)."\n";

/**

*

遍历目录(递归)

*

@param

string

$dir

目录名且最后没有/

*

@return

array

$files

整个目录结构

*/

function

myScandir($dir)

{

$files

=

array();

if($handle

=

opendir($dir)){

while

(($file

=

readdir($handle))

!=

false){

if($file

!=

"."

$file

!=

".."){

$newDir

=

$dir."/".$file;

if(is_dir($newDir)){

$files[$file]

=

myScandir($newDir);

}else{

$files[]

=

$file;

}

}

}

closedir($handle);

return

$files;

}

}

$dir

=

"/dirname";

print_r(myScandir($dir));

以上代码是不是很简单啊,就这几个函数,函数掌握了,这道题就很容易的解决了,希望本文分享对大家有所帮助。

php目录操作实例代码

这篇文章主要介绍了php目录操作实例代码,需要的朋友可以参考下

代码如下:

<?php

/**

*

listdir

*/

header("content-type:text/html;charset=utf-8");

$dirname

=

"./final/factapplication";

function

listdir($dirname)

{

$ds

=

opendir($dirname);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$dirname.'/'.$file;

if

($file

!=

'.'

$file

!=

'..')

{

if

(is_dir($path))

{

listdir($path);

}

else

{

echo

$file."<br>";

}

}

}

closedir($ds);

}

listdir($dirname);

核心:递归的经典应用,以及文件和目录的基本操作。

代码如下:

<?php

/**

*

copydir

*/

$srcdir

=

"fileupload";

$dstdir

=

"b";

function

copydir($srcdir,

$dstdir)

{

mkdir($dstdir);

$ds

=

opendir($srcdir);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$srcdir."/".$file;

$dstpath

=

$dstdir."/".$file;

if

($file

!=

"."

$file

!=

"..")

{

if

(is_dir($path))

{

copydir($path,

$dstpath);

}

else

{

copy($path,

$dstpath);

}

}

}

closedir($ds);

}

copydir($srcdir,

$dstdir);

核心:copy函数。

代码如下:

<?php

/**

*

deldir

*/

$dirname

=

'a';

function

deldir($dirname)

{

$ds

=

opendir($dirname);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$dirname.'/'.$file;

if($file

!=

'.'

$file

!=

'..')

{

if

(is_dir($path))

{

deldir($path);

}

else

{

unlink($path);

}

}

}

closedir($ds);

return

rmdir($dirname);

}

deldir($dirname);

核心:注意unlink删除的是带path的file。

代码如下:

<?php

/**

*

dirsize

*/

$dirname

=

"a";

function

dirsize($dirname)

{

static

$tot;

$ds

=

opendir($dirname);

while

(false

!==

($file

=

readdir($ds)))

{

$path

=

$dirname.'/'.$file;

if

($file

!=

'.'

$file

!=

'..')

{

if(is_dir($path))

{

dirsize($path);

}

else

{

$tot

=

$tot

+

filesize($path);

}

}

}

return

$tot;

closedir($ds);

}

echo

dirsize($dirname);

核心:通过判断$tot在哪里返回,理解递归函数。

关于php目录操作类的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php目录操作类 php分类目录的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did225734
更新时间:2023-05-11   阅读:15次

上一篇: php出现mysql红灯 mysqli php

下一篇:迅雷下载是php是 迅雷下载网站mp4格式

相关资讯

最新资料更新

  • 1.php怎么登录会员 怎么用php完成登录页面
  • 2.php空间景安 php 免费空间
  • 3.phppngjpeg的简单介绍
  • 4.php内存管理垃圾回收 php的垃圾回收机制是怎样的
  • 5.phpmysql当天 mysql 当天
  • 6.包含phpgabage的词条
  • 7.php基于iis php+iis
  • 8.关于winformphp的信息
  • 9.php限制访问ip php访问被拒绝
  • 10.php自学教程推荐 php入门课程
  • 11.破解php登录才能查看 破解php登录才能查看吗
  • 12.php框架开发教程 php系统开发框架
  • 13.php字母循序排列 php字符串排序
  • 14.php会员登录与注册 php 用户登录
  • 15.php绘制健康码 php源码怎么搭建网站
  • 16.php技术网学习 php技术门户
  • 17.phpml源码安装 下载了个php源码包,怎么使用
  • 18.php双色球案例 双色球php复式逻辑
  • 19.php语言怎么玩 php语言入门
  • 20.vip影院php后台版 vip影视电视剧电影

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]