PHP5 튜토리얼 파일 작업
소개
파일은 모든 컴퓨터 장치에 필요한 개체이며 웹 프로그래밍에서 파일 작업은 항상 웹 프로그래머에게 골치 아픈 일이었습니다. 이것은 웹 프로그래머에게 필요하며 cms 시스템에서 매우 유용합니다. 우리는 파일, 디렉터리, 파일(폴더) 생성, 편집 등과 같은 작업을 자주 접하게 됩니다. 이제 PHP에서 이러한 기능을 자세히 요약하고 방법을 보여 드리겠습니다. 해당 기능에 대한 자세한 소개는 PHP 매뉴얼에서 핵심 사항과 주의해야 할 사항만 요약되어 있습니다. (PHP 매뉴얼에는 없습니다.) (lian)
Second 디렉토리 작업
첫 번째로 소개된 것은 디렉토리에서 읽는 것입니다. 사용 시 opendir() readdir() closeir() 함수는 먼저 파일 핸들을 연 다음 목록을 반복합니다.
lt;?php $base_dir = filelist/; $fso = opendir($base_dir); hr/gt; while($flist=readdir($fso)); ; ; closeir($fso) ?gt;?
이것은 파일 디렉터리 아래의 파일과 디렉터리를 반환하는 프로그램입니다(파일은 false를 반환합니다)
때로는 디렉터리 정보를 알아야 할 경우 dirname($path) 및 basename($path)을 사용하여 각각 경로의 디렉터리 부분과 파일 이름 부분을 반환할 수 있습니다. disk_free_space($path)를 사용하여 반환할 수 있습니다.
생성 명령:
mkdir($path)
권한 코드는 창이 아닌 조건에서 umask() 함수를 사용하여 설정할 수 있습니다. .
rmdir($path)
$path에 경로가 있는 파일이 삭제됩니다.
dir 디렉토리 클래스는 파일 디렉토리를 운영하는 데에도 중요한 클래스입니다. read rewind close 메소드가 있습니다. 이것은 의사 객체 지향 클래스입니다. 먼저 파일 핸들을 사용한 다음 포인터를 사용하여 읽습니다.
lt;?php$ d = dir(/etc/php); echo 핸들: $d gt; 경로: $d gt; while (false !== ($d gt; read()) ) { echo $entry /n;}$d gt; close();?gt
출력:
핸들: 리소스 ID # 경로: /etc/php apachecgicli p>
파일 속성도 매우 중요합니다. 파일 속성에는 생성 시간, 마지막 수정 시간, 소유자, 파일 그룹 유형, 크기 등이 포함됩니다.
파일 작업에 집중하겠습니다.
세 가지 파일 작업
A 파일 읽기
먼저 파일을 읽을 수 있는지(권한 문제) 또는 존재하는지 확인하려면 is_reader 함수를 사용하여 정보를 얻을 수 있습니다.
p>lt;?php$file = dirlist php;if (is_readable($file) == false) { die(파일이 존재하지 않거나 읽을 수 없습니다);} else { echo 존재합니다;}?g
t;?
파일의 존재를 확인하는 함수에는 file_exists(아래 설명)도 포함되어 있지만 이는 분명히 is_reader만큼 포괄적이지는 않습니다.
lt;?php$file = filelist php; if (file_exists($file) == false) { die(파일이 존재하지 않습니다);}$data = file_get_contents($file);? gt;?그러나 file_get_contents 함수는 하위 버전에서 지원되지 않습니다. 먼저 파일에 대한 핸들을 만든 다음 포인터를 사용하여 전체 파일을 읽을 수 있습니다.
$fso = fopen($cacheFile r ); $data = fread($fso filesize($cacheFile)); fclose($fso)
바이너리 파일을 읽는 다른 방법이 있습니다:
$data = implode( file($file));
B 파일 쓰기
파일을 읽는 것과 마찬가지로 먼저 쓸 수 있는지 확인합니다. p>
lt;?php$file = dirlist php; if (is_writable( $file) == false) { die(나는 닭이므로 할 수 없습니다);}?gt;?
글을 쓸 수 있다면 file_put_contents 함수를 사용하여 쓸 수 있습니다:
lt;? php $file = dirlist php; if (is_writable($file) == false) { die(나는 닭 깃털은 할 수 없습니다); } $data = 나는 그것을 원합니다. file_put_contents ($file $data) ?gt; PHP(존재하는지 모르는 경우 먼저 function_exists 함수를 사용하여 확인하세요.) PHP의 하위 버전에서 사용할 수 없는 경우 다음 방법을 사용할 수 있습니다:
$f = fopen ($file w); fwrite($f $data); fclose($f);?
바꾸기
파일을 쓰다 보면 잠그고 써야 할 때가 있습니다. :
함수 캐시_페이지($pageurl $pagedata){ if(!$fso=fopen($pageurl w )){ $this gt; warnings(캐시 파일을 열 수 없음) //trigger_error return false; } if( !flock($fso LOCK_EX)){//LOCK_NB 독점 잠금 $this gt; 경고(캐시 파일을 잠글 수 없음) //trigger_error return false; 입력 바이트 스트림 직렬화 및 쓰기 $this gt; 경고(캐시 파일에 쓸 수 없음); //trigger_error return false($fso LOCK_UN) //해제 잠금 fclose($fso); ?
C 파일 복사 및 삭제
PHP에서 파일을 삭제하는 것은 매우 쉽습니다. 연결 해제 기능을 사용하면 간단하게 작업할 수 있습니다:
lt;?php $file = dirlist php; $result == false ) { echo 모기 드라이브 사라졌습니다; } else { 에코는 쫓아낼 수 없습니다 } ?gt;?
그렇습니다.
파일을 복사하는 것도 쉽습니다. lt;?php $ file = yang txt; $newfile = ji txt; # 이 파일의 상위 폴더는 쓰기 가능해야 합니다. if (file_exists($file) == false) { die (샘플이 온라인이 아니므로 복사할 수 없음) ; } $result = copy($file $ newfile); if ($result == false) { echo copy memory ok } ?gt;? 폴더.다른 작업은 이러한 기능의 조합으로 수행될 수 있습니다.
D 파일 속성 가져오기
몇 가지 일반적인 기능에 대해 이야기하겠습니다.
가져오기 최신 수정 시간:
lt ;?php $file = test txt; echo date( r filemtime($file))
Unix의 반환된 타임스탬프는 다음과 같습니다. 캐싱 기술에 일반적으로 사용됨
관련 파일의 권한 소유자 소유권 그룹 또는 다른 inode의 메타데이터가 업데이트될 때 마지막으로 액세스한 시간 fileatime() filectime()도 가져옵니다. fileowner() 함수가 파일을 반환하는 시간 owner
$owner = posix_getpwuid(fileowner($file));?
(비 윈도우 시스템) ileperms()는 파일 권한을 얻습니다.
lt;? php$file = dirlist php;$ perms = substr(sprintf( o fileperms($file)) ); echo $perms;?gt;?
Filesize()는 파일 크기의 바이트 수를 반환합니다. :
lt; ?php
// somefile txt: bytes와 유사한 출력
$filename = echo $filename: filesize($filename) bytes;
?gt ;?
파일의 모든 정보를 얻으려면 배열을 반환하는 stat() 함수가 있습니다.
lt; ?php $file = dirlist php; $perms = stat($file) ; var_dump($perms); ?gt;?
여기서는 키에 해당하는 내용을 확인할 수 있습니다. .
네 가지 결론 lixixinzhi/Article/program/PHP/201311/21262