다음 텍스트:
php 폴더 작업 함수
string basename ( string path [, string suffix] )
파일의 전체 경로가 포함된 문자열이 주어지면 이 함수는 기본 파일 이름을 반환합니다. 파일 이름이 접미사로 끝나면 이 부분도 제거됩니다.
Windows에서는 슬래시(/)와 백슬래시()를 모두 디렉터리 구분 기호로 사용할 수 있습니다. 다른 경우에는 슬래시(/)입니다.
string dirname ( string path )
는 파일의 전체 경로가 포함된 문자열을 제공합니다. 이 함수는 파일 이름을 제거한 후 디렉터리 이름을 반환합니다.
Windows에서는 슬래시(/)와 백슬래시()를 모두 디렉터리 구분 기호로 사용할 수 있습니다. 다른 경우에는 슬래시(/)입니다.
array pathinfo ( string path [, int options] )
pathinfo()는 경로 정보가 포함된 연관 배열을 반환합니다. 다음 배열 요소를 포함합니다: dirname, basename 및 Extension.
매개변수 옵션을 통해 반환할 단위를 지정할 수 있습니다. 여기에는 PATHINFO_DIRNAME, PATHINFO_BASENAME 및 PATHINFO_EXTENSION이 포함됩니다. 기본값은 모든 단위를 반환하는 것입니다.
string realpath(문자열 경로)
realpath()는 모든 기호 링크를 확장하고 '/./', '/../' 및 입력 경로 '의 중복 문자를 처리합니다. /' 그리고 정규화된 절대 경로 이름을 반환합니다. 반환된 경로에는 심볼릭 링크, '/./' 또는 '/../' 구성 요소가 없습니다.
realpath()는 실패할 경우(예를 들어 파일이 존재하지 않는 경우) FALSE를 반환합니다. BSD 시스템에서 경로가 존재하지 않으면 PHP는 다른 시스템처럼 FALSE를 반환하지 않습니다.
bool is_dir ( string filename )
파일 이름이 존재하고 디렉터리이면 TRUE를 반환합니다. filename이 상대 경로인 경우 상대 경로는 현재 작업 디렉터리에 대해 확인됩니다.
참고: 이 함수의 결과는 캐시됩니다. 자세한 내용은 Clearstatcache()를 참조하세요.
resource opendir ( string path [, resource context] )
이후의 closedir(), readdir() 및 rewinddir() 호출에서 사용할 수 있는 디렉토리 핸들을 엽니다.
string readdir ( resource dir_handle )
디렉터리에서 다음 파일의 파일 이름을 반환합니다. 파일 이름은 파일 시스템에 순서대로 반환됩니다.
void closedir ( resource dir_handle )
dir_handle로 지정된 디렉터리 스트림을 닫습니다. 스트림은 이전에 opendir()에 의해 열려 있어야 합니다.
void rewinddir ( resource dir_handle )
dir_handle로 지정된 디렉터리 스트림을 디렉터리의 시작 부분으로 재설정합니다.
array glob ( string pattern [, int flags] )
glob() 함수는 일반 쉘에서 사용하는 규칙과 유사하게 libc glob() 함수에서 사용하는 규칙에 따라 패턴과 일치하는 모든 파일 경로를 찾습니다. 약어 확장이나 매개변수 대체는 수행되지 않습니다.
일치하는 파일/디렉토리가 포함된 배열을 반환합니다. 오류가 발생하면 FALSE를 반환합니다.
유효한 태그는 다음과 같습니다.
GLOB_MARK - 반환된 각 항목에 슬래시를 추가합니다.
GLOB_NOSORT - 디렉터리에 나타나는 원래 순서대로 파일을 반환합니다(정렬되지 않음)
GLOB_NOCHECK - 파일이 일치하지 않는 경우 검색할 패턴을 반환합니다.
GLOB_NOESCAPE - 이스케이프되지 않은 백슬래시 메타 문자
GLOB_BRACE - 'a', 'b' 또는 'c'와 일치하도록 {a,b,c}를 확장합니다.
GLOB_ONLYDIR - 반환 패턴과 일치하는 디렉토리 항목만
참고: PHP 4.3.3 이전에는 Windows나 GNU C 라이브러리를 사용하지 않는 다른 시스템에서는 GLOB_ONLYDIR을 사용할 수 없었습니다.
GLOB_ERR - 오류 메시지(예: 읽을 수 없는 디렉터리)를 중지하고 읽고 기본적으로 모든 오류를 무시합니다.
참고: GLOB_ERR은 PHP 5.1에 추가되었습니다.
php 파일 디렉터리 작업
새 파일
1. 먼저 작성할 파일의 내용을 결정
$content = '你好';
2. 파일(시스템이 자동으로 이 빈 파일을 생성합니다.)
//假设新建的文件叫file.txt,而且在上级目录下。w表示‘写文件',$fp下面要用到,表示指向某个打开的文件。 $fp = fopen('../file.txt', 'w');
3.
//$fp告诉系统要写入的文件,写入的内容是$content fwrite($fp, $content);
파일에 콘텐츠 문자열을 씁니다.
fclose($fp);
참고: PHP5는 더 편리한 file_put_contents 기능을 제공합니다. 위의 4단계는 다음과 같이 완료할 수 있습니다:
$content = '你好'; file_put_contents('file.txt',$content);
파일 삭제
//删除当前目录下的arch目录下的文件abc.txt unlink('arch/abc.txt');
참고: 시스템은 작업 결과를 성공하면 TRUE로, 실패하면 FALSE로 반환합니다. 변수를 사용하여 삭제 성공 여부를 확인할 수 있습니다.
$deleteResult = unlink('arch/abc.txt');
파일 내용 가져오기
//假设获取的目标文件名是file.txt,而且在上级目录下。获取的内容放入$content。 $content = file_get_contents('../file.txt');
파일 콘텐츠 수정
작업 방법은 기본적으로 새 콘텐츠 생성과 동일
파일 또는 디렉터리 이름 바꾸기
//将当前目录下的子目录a下面的文件1.gif重命名为2.gif。 rename('/a/1.gif', '/a/2.gif');
참고: 디렉토리의 경우에도 마찬가지입니다. 시스템은 작업 결과를 반환하며, 성공하면 TRUE, 실패하면 FALSE를 반환하여 이름 바꾸기 성공 여부를 알 수 있습니다.
$renameResult = rename('/a/1.gif', '/a/2.gif');
파일이나 디렉터리를 이동하려면 이름이 바뀐 경로를 새 경로로 설정하세요.
//将当前目录下的子目录a下面的文件1.gif,移动到当前目录下的子目录b,并且重命名为2.gif。 rename('/a/1.gif', '/b/2.gif');
그러나 디렉터리 b인 경우에는 주의하세요. 존재하지 않으면 이동이 실패합니다.
파일 복사
//将当前目录下的子目录a下面的文件1.gif,复制到当前目录下的子目录b,并命名为2.gif。 copy('/a/1.gif', '/b/1.gif');
참고: 디렉터리에서는 이 작업을 수행할 수 없습니다.
대상 파일(위 /b/1.gif)이 이미 존재할 경우 원본 파일을 덮어쓰게 됩니다.
시스템은 작업 결과를 반환하며, 성공하면 TRUE, 실패하면 FALSE를 반환하여 복사 성공 여부를 알 수 있습니다.
$copyResult = copy('/a/1.gif', '/b/1.gif');
파일 또는 디렉터리 이동
작업 방법은 이름 바꾸기와 동일
파일 또는 디렉터리 존재 여부
//检查上级目录下的文件logo.jpg是否存在。 $existResult = file_exists('../logo.jpg');
참고: 파일이 시스템에 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 디렉터리에서도 동일한 작업을 수행할 수 있습니다.
파일 크기 가져오기
//获取上级目录下的文件logo.png的大小。 $size = filesize('../logo.png');
설명: 시스템은 파일 크기를 바이트 단위로 나타내는 숫자를 반환합니다.
새 디렉토리 만들기
//在当前目录下的目录a下面新建目录b。 mkdir('/a/b');
说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否新建成功:
$mkResult = mkdir('/a/b');
删除目录
//删除当前目录下的目录a下面的子目录b。 rmdir('/a/b');
说明:只能删除非空的目录,否则必须先删除目录下的子目录和文件,再删除总目录
系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:
$deleteResult = rmdir('/a/b');
获取目录中的所有文件名
1、先打开要操作的目录,并用一个变量指向它
//打开当前目录下的目录pic下的子目录common。 $handler = opendir('pic/common');
2、循环的读取目录下的所有文件
/*其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename, 为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环*/ while( ($filename = readdir($handler)) !== false ) { 3、目录下都会有两个文件,名字为'.'和‘..',不要对他们进行操作 if($filename != "." && $filename != "..") { 4、进行处理 //这里简单的用echo来输出文件名 echo $filename; } }
5、关闭目录
closedir($handler);
对象是否是目录
//检查上级目录下的目标对象logo.jpg是否是目录。 $checkResult = is_dir('../logo.jpg');
说明:如果目标对象是目录系统返回true,否则返回false。上面例子的$checkResult当然是false。
对象是否是文件
//检查上级目录下的目标对象logo.jpg是否是文件。 $checkResult = is_file('../logo.jpg');
说明:如果目标对象是文件,系统返回true,否则返回false。上面例子的$checkResult当然是true。
以上就是(进阶篇)php文件夹与文件目录操作函数介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!