(고급) PHP에서 자주 사용하는 파일 작업 함수

黄舟
풀어 주다: 2023-03-05 12:30:02
원래의
1163명이 탐색했습니다.

다음은 PHP 파일 작업 함수입니다. 물론 이것은 일부에 불과하며, 나열하지 않은 내용이 더 많습니다.

1. 구문 분석 경로:

1 파일 이름 가져오기:

basename();
은 파일의 전체 경로가 포함된 문자열을 제공합니다. 이 함수는 다음을 반환합니다. 기본 파일 이름. 파일 이름이 접미사로 끝나면 이 부분도 제거됩니다.
예:

$path = "/home/httpd/html/index.php";
$file = basename($path,".php"); // $file is set to "index"
로그인 후 복사

2 디렉토리 부분 가져오기:
dirname();
은 파일의 전체 경로가 포함된 문자열을 제공합니다. 이 함수는 파일 이름을 제거한 후 디렉터리 이름을 반환합니다.
예:

$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"
로그인 후 복사

3 경로 연관 배열 가져오기
pathinfo();
지정된 경로의 세 부분 가져오기: 디렉터리 이름, 기본 이름, 확장자.
예:

$pathinfo = pathinfo("www/test/index.html");
var_dump($pathinfo);
// $path['dirname']
$path['basename']
$path['extenssion']
로그인 후 복사


2. 파일 형식
1.filetype();
파일 형식을 반환합니다. 가능한 값은 fifo, char, dir, block, link, file 및 알 수 없음입니다.
예:

echo filetype('/etc/passwd'); // file
echo filetype('/etc/');        // dir
로그인 후 복사


3. 특정 파일에 대한 유용한 정보 배열을 가져옵니다(매우 유용함)

1. fstat();
열린 파일 포인터는 파일 정보를 가져옵니다.
파일 포인터 핸들로 열린 파일의 통계 정보를 가져옵니다. 이 함수는 파일 이름 대신 열린 파일 포인터에 대해 작동한다는 점을 제외하면 stat() 함수와 유사합니다.
예:

// 打开文件
$fp = fopen("/etc/passwd", "r");
// 取得统计信息
$fstat = fstat($fp);
// 关闭文件
fclose($fp);
// 只显示关联数组部分
print_r(array_slice($fstat, 13));
로그인 후 복사

2.stat()
파일명으로 지정된 파일의 통계 정보 가져오기(fstat()와 유사)

4. 🎜 >1.filesize()
오류가 발생하면 FALSE를 반환하고 E_WARNING 수준 오류를 생성합니다.
예:

// 输出类似:somefile.txt: 1024 bytes
$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';
로그인 후 복사

2. disk_free_space()
디렉토리가 있는 디스크 파티션의 사용 가능한 공간(바이트)을 가져옵니다.


// $df 包含根目录下可用的字节数
$df = disk_free_space("/");
//在 Windows 下:
disk_free_space("C:");
disk_free_space("D:");
로그인 후 복사

3. disk_total_space()
디렉터리의 전체 디스크 크기를 반환합니다
예: (위와 동일, 함수 교체)

다른: 디렉터리의 크기를 계산해야 하는 경우

코드

function dir_size($dir){
$dir_size = 0;
if($dh = @opendir($dir)){
while(($filename = readdir($dh)) != false){
if($filename !='.' and $filename !='..'){
     if(is_file($dir.'/'.$filename)){
$dir_size +=filesize($dir.'/'.$filename);
}else if(is_dir($dir.'/'.$filename)){
      $dir_size +=dir_size($dir.'/'.$filename);
}
}
                   }#end while
            }# end opendir
@closedir($dh);
return $dir_size;
} #end function
로그인 후 복사

를 구현하는 재귀 함수를 작성할 수 있습니다. 5. 액세스 및 수정 시간

1 . fileatime(): 마지막 액세스 시간
2 . filectime(): 마지막 변경 시간(모든 데이터 수정)
3. filemtime(): 마지막 수정 시간(콘텐츠 수정만 참조)

6. 파일 I/O 작업


1. fopen -- 파일 또는 URL 열기


모드 설명
'r' 읽기에서 열기 -only 모드로 설정하고 파일 포인터가 파일 헤더를 가리키도록 합니다.
'r+' 읽기-쓰기 모드로 열고 파일 포인터가 파일 헤더를 가리킵니다.
'w'는 쓰기 모드를 켜고 파일 포인터가 파일 헤더를 가리키도록 하며 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 생성해 보십시오.
'w+' 읽기-쓰기 모드로 열고, 파일 포인터를 파일 헤더로 가리키고 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 생성해 보십시오.
'a'는 쓰기 모드로 열리고 파일 포인터가 파일 끝을 가리킵니다. 파일이 존재하지 않으면 생성해 보십시오.
'a+' 읽기-쓰기 모드로 열고 파일 포인터가 파일 끝을 가리킵니다. 파일이 존재하지 않으면 파일을 만들어 보십시오.
'x'는 파일 헤더를 가리키는 파일 포인터를 가리키며 쓰기를 위해 생성 및 열립니다. 파일이 이미 존재하는 경우 fopen() 호출이 실패하고 FALSE를 반환합니다.
'x+'가 생성되고 읽기 및 쓰기용으로 열리고 파일 포인터가 파일 헤더를 가리킵니다. 파일이 이미 존재하는 경우 fopen() 호출은 실패하고 FALSE를 반환합니다
예:

$handle = fopen("/home/rasmus/file.txt", "r");

2. file -- 전체 파일을 배열로 읽어옵니다(이 함수는 매우 유용합니다)

file()이 파일을 배열로 처리한다는 점을 제외하면 file_get_contents()와 동일합니다. 배열 배열이 반환되었습니다. 배열의 각 셀은 줄 바꿈을 포함하여 파일의 해당 줄입니다. 실패 시 file()은 FALSE를 반환합니다.
예:

코드

$lines = file('http://www.example.com/');
// 在数组中循环,显示 HTML 的源文件并加上行号。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 另一个例子将 web 页面读入字符串。参见 file_get_contents()。
$html = implode(&#39;&#39;, file (&#39;http://www.example.com/&#39;));
로그인 후 복사


3. fgets -- 핸들이 가리키는 파일 포인터

에서 한 줄을 읽습니다. 파일에서 한 줄을 읽고 길이가 최대 1바이트인 문자열을 반환합니다. 개행 문자(반환 값에 포함됨), EOF 또는 길이 - 1바이트를 읽었을 때(둘 중 먼저 발생하는 것) 중지됩니다. 길이를 지정하지 않으면 기본값은 1K 또는 1024바이트입니다.
예:

$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
로그인 후 복사

4. fgetss -- 파일 포인터에서 한 줄을 읽고 HTML 태그를 필터링합니다.

fgetss를 제외하고 fgets()와 동일합니다. 읽은 텍스트에서 HTML 및 PHP 마크업을 제거합니다.

선택적인 세 번째 매개변수를 사용하여 제거되지 않을 태그를 지정할 수 있습니다.

기타: 디렉토리 작업:
1. opendir을 엽니다. , 후속 closedir(), readdir() 및 rewinddir() 호출에서 사용할 수 있는 디렉터리 핸들을 엽니다.
2. readdir -- 디렉토리 핸들에서 항목을 읽고 디렉토리에 있는 다음 파일의 파일 이름을 반환합니다. 파일 이름은 파일 시스템에 순서대로 반환됩니다.
예:

코드

// 注意在 4.0.0-RC2 之前不存在 !== 运算符
if ($handle = opendir(&#39;/path/to/files&#39;)) {
echo "Directory handle: $handle\n";
echo "Files:\n";
  
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
   
while ($file = readdir($handle)) {
echo "$file\n";
}
     closedir($handle);
}
로그인 후 복사

3. scandir -- 지정된 경로에 있는 파일과 디렉터리를 나열합니다(매우 유용함), 디렉토리에 있는 파일과 디렉토리를 포함하는 배열을 반환합니다.
기본 정렬 순서는 알파벳 오름차순입니다. 선택적 매개변수 sorting_order가 사용되는 경우(1로 설정) 정렬 순서는 알파벳 내림차순입니다.
예:

아아앙

另外注:

七、 对文件属性的操作(操作系统环境不同,可能有所不一样,这点要注意)

1文件是否可读:

       boolis_readable ( string filename )
로그인 후 복사

如果由 filename 指定的文件或目录存在并且可读则返回 TRUE。

记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。

2 文件是否可写

         bool is_writable ( string filename )
로그인 후 복사

如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。

记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制

3 检查文件是否存在

    boolfile_exists ( string filename )
로그인 후 복사

      如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE


以上就是(进阶篇) PHP常用的文件操作函数的内容,更多相关内容请关注PHP中文网(www.php.cn)!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!