php基础入门篇-文件和目录操作_PHP教程
一篇关于php 入门的朋友参考的关于文件和目录的各种操作函数与实例应用,有需要的朋友可以简单的参考一下。
本章可以算是上一章的延续,介绍了除文件实际内容之外的附加信息,包括文件的大小、目录、访问权限等。文件系统中的某些函数只在服务器为特定的系统中时才有效,例如更改符号链接的函数symlink(),设定文件访问权限的函数chmod(),设定目录访问权限的函数umask()等等这些只在Linux系统中有效,在Windows系统中无效。PHP5以后提供的DirectoryIterator类也封装了很多实用的目录方面的操作
代码如下 | 复制代码 |
//------------- 采用DirectoryIterator类迭代目录中的文件 ------------- //------------- PHP5之前版本的实现方式 ------------- |
closedir($d);文件信息函数
函数名 函数提供什么文件信息?
file_exists() 该文件是否存在
fileatime() 最后访问时间
filectime() 文件inode的最后修改时间
filegroup() 取得文件组(返回整数)
fileinode() 取得文件的信息节点数(返回整数)
filemtime() 取得文件数据块最后被写入的时间(返回Unix时间戳)
fileowner() 取得文件的所有者(返回用户ID)
fileperms() 取得文件的权限
filesize() 取得文件大小的字节数
filetype() 取得文件类型,可能返回 fifo,char,dir,block,link,file 和 unknown
is_dir() 判断给定文件名是否是一个目录
is_executable() 判断给定文件名是否可执行(自PHP5.0.0起可用于Windows)
is_file() 判断给定文件名是否为一个正常的文件
is_link() 判断给定文件名是否为一个符号连接
is_readable() 判断给定文件名是否可读
is_writable() 判断给定文件名是否可写
目录相关函数
函数名 函数提供什么文件信息?
mkdir() 创建一个新目录,第二个参数可用来设置访问权限
rmdir() 删除目录
rename() 重命名一个文件或目录
目录类相关方法
DirectoryIterator类封装了很多与目录相关的方法
方法名 函数提供什么目录信息?
isDir() 判断给定的DirectoryIterator item对象是否是一个目录
isDot() 判断当前的DirectoryIterator item对象是否是‘.’或‘..’
isFile() 判断当前的DirectoryIterator item对象是否是一个有效的文件
isLink() 判断当前的DirectoryIterator item对象是否是一个连接
isReadable() 判断当前的DirectoryIterator item对象是否可读
isWritable() 判断当前的DirectoryIterator item对象是否可写
isExecutable() 判断当前的DirectoryIterator item对象是否可执行
getATime() 获取当前Iterator item最后访问时间
getCTime() 获取当前Iterator item最后修改时间
getMTime() 获取当前Iterator item文件数据块最后被写入的时间
getFilename() 获取当前Iterator item文件名(带扩展名)
getPathname() 获取当前Iterator item路径名
getPath() 获取当前Iterator item路径名和文件名
getGroup() 获取当前Iterator item组ID
getOwner() 获取当前Iterator item拥有者ID
getPerms() 获取当前Iterator item权限
getSize() 获取当前Iterator item文件大小
getType() 获取当前Iterator item类型,可能是file,link or dir
getInode() 获取当前Iterator item的inode节点号
文件时间戳解惑
touch()函数修改文件的更新时间
fileatime()函数返回文件因为读或写被打开的最后时间
filemtime()函数返回文件内容被修改的最后时间
filectime()函数返回文件内容或元数据被修改的最后时间
获取文件信息
通过stat()可以获取一个包含文件相关信息的数组,与此函数类似的是fstat()函数,这个函数以一个文件句柄作为参数(由fopen()或popen()返回),lstat()用来获取符号或文件连接的信息。
数字索引 字符串索引 说明
0 dev 设备号
1 ino 信息节点号
2 mode 保护模式
3 nlink 被连接数目
4 uid 所有者用户ID
5 gid 所在组ID
6 rdev 设备类型,如果是inode设备的话
7 size 文件大小的字节数
8 atime 上次访问的时间(Unix时间戳)
9 mtime 上次修改的时间(Unix时间戳)
10 ctime 上次改变的时间(Unix时间戳)
11 blksize 文件系统IO的块大小
12 blocks 所占据块的数目
修改文件权限
chmod()函数修改文件的权限
chown()函数修改文件的所有者
chgrp()函数修改文件所属组
注意:上述3个函数在Windows系统中无效
获取文件名各部分信息
basename()函数可以取得文件名,dirname()函数可以取得路径名,pathinfo()取得目录名、完整文件名、扩展名、文件名(即不带扩展名)的关联数组,键名分别是[dirname]、[basename]、[extension]、[filename]
常通过dirname(__FILE__)的组合来获取当前目录路径(物理路径,常用在引用其他PHP文件上)
删除文件
用unlink()函数可以删除一个文件,如果删除失败将产生一个E_WARNING错误
提示:PHP5.0.0后此函数也可以用来删除远程文件,如FTP等
复制或移动文件
使用copy(old_dir,new_dir)函数可以复制文件,使用rename(old_dir,new_dir)移动文件,这里的new_dir是可以可以重命名文件名的。
模式匹配文件名列表(模糊查询)
如果希望像命令行那样查询出某个目录中的所有jpg文件(*.jpg),可以使用DirectoryIterator类的FileterIterator子类accept()方法或者glob()函数获取匹配的文件名。
//FileterIterator的实现代码
代码如下 | 复制代码 |
class ImageFilter extends FilterIterator { n"; |
//-------------- glob函数的实现代码 ------------
代码如下 | 复制代码 |
foreach (glob('/usr/local/docs/*.txt') as $file) { $contents = file_get_contents($file); print "$file contains $contentsn"; |
}递归目录中的文件
如果想获得一个目录及其子目录的文件大小,可以使用RecursiveDirectoryIterator(提供子目录获取的功能)和RecursiveIteratorIterator(平整化)
代码如下 | 复制代码 |
$dir = new RecursiveDirectoryIterator('/usr/local'); |

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.
