>백엔드 개발 >PHP 튜토리얼 >PHP 디렉터리 및 파일 처리 방법

PHP 디렉터리 및 파일 처리 방법

WBOY
WBOY원래의
2016-07-25 08:51:31901검색
  1. if(mkdir("./path",0700)) //현재 디렉토리에 경로 디렉토리를 생성합니다
  2. echo " 성공 만들기";
  3. ?>
코드 복사

2. 현재 디렉토리를 가져오고 변경합니다. 현재 작업 디렉토리는 매개변수가 없는 getcwd() 함수를 사용하여 얻을 수 있습니다. 성공하면 현재 작업 디렉터리가 반환됩니다. 실패하면 FALSE

가 반환됩니다.

3. 디렉토리 핸들 열기 및 닫기 opendir($dir) 닫힘($dir_handle)

4. 디렉토리 내용 읽기 readdir(), 이 매개변수는 이미 열린 디렉터리 핸들이며 while 루프를 사용하여 디렉터리를 탐색할 수 있습니다

5. 지정된 경로에 있는 디렉터리와 파일을 가져옵니다. 배열 scandir(문자열 $directory [, int $sorting_order [, 자원 $context ]]) 참고: $directory는 지정된 경로입니다. $sorting_order 매개변수는 기본적으로 알파벳 오름차순으로 정렬된다는 의미이며, 1로 설정되면 알파벳 내림차순으로 정렬된다는 의미입니다. $context는 선택적 매개변수이며 stream_context_create() 함수를 사용하여 생성할 수 있는 리소스 변수입니다. 이 변수는 특정 작업 개체와 관련된 일부 데이터를 저장합니다. 함수가 성공하면 지정된 경로 아래의 모든 디렉터리 및 파일 이름이 포함된 배열을 반환하고, 실패하면 FALSE를 반환합니다. 2. 일반적인 파일 운영 방법 3. 파일 열기 및 닫기 1.파일을 열어주세요 리소스 fopen(문자열 $filename, 문자열 $mode [, bool $use_include_path [, 리소스 $context ]]) ●$filename 매개변수. fopen() 함수는 $filename 매개변수로 지정된 이름 자원을 스트림에 바인딩합니다. ●$mode 매개변수. $mode 매개변수는 fopen() 함수가 파일에 액세스하는 모드를 지정합니다. 값은 표 4.5에 나와 있습니다. $모드 설명하다 '아르 자형' 읽기 전용 모드로 파일을 열고 파일의 처음부터 읽습니다. 'r' 읽기-쓰기 모드로 파일을 열고 파일의 처음부터 읽기 및 쓰기를 시작합니다. '와' 쓰기 모드로 파일을 열고 파일 포인터가 파일 헤더를 가리키도록 합니다. 파일이 이미 있으면 기존 콘텐츠를 삭제하고, 파일이 없으면 새로 만들어 보세요. '와' 읽기-쓰기 모드로 파일을 열고 파일 포인터가 파일 헤더를 가리키도록 합니다. 파일이 이미 있으면 기존 콘텐츠를 삭제하고, 파일이 없으면 새로 만들어 보세요. '에이' 쓰기 모드로 파일을 열고 파일 포인터를 파일 끝으로 지정합니다. 파일에 이미 내용이 있으면 파일 끝부터 기록됩니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. 'a' 읽기-쓰기 모드로 파일을 열고 파일 포인터가 파일 끝을 가리키도록 합니다. 파일에 이미 내용이 포함되어 있으면 파일 끝부터 읽기 및 쓰기가 시작됩니다. 파일이 존재하지 않으면 파일을 만들어 보십시오. '엑스' 파일 포인터를 파일 헤더로 지정하여 쓰기용 파일을 만들고 엽니다. 파일이 이미 존재하는 경우 fopen() 호출은 실패하고 FALSE를 반환하며 E_WARNING 수준 오류 메시지를 생성합니다. 파일이 존재하지 않으면 파일 생성을 시도합니다. 이 옵션은 PH 및 이후 버전에서 지원되며 로컬 파일에만 사용할 수 있습니다. '엑스' 파일 포인터를 파일 헤더로 지정하여 읽기 및 쓰기용 파일을 만들고 엽니다. 파일이 이미 존재하는 경우 fopen() 호출은 실패하고 FALSE를 반환하며 E_WARNING 수준 오류 메시지를 생성합니다. 파일이 존재하지 않으면 파일 생성을 시도합니다. 이 옵션은 PH 및 이후 버전에서 지원되며 로컬 파일에만 사용할 수 있습니다. '비' 다른 모드 뒤에 연결하는 데 사용되는 바이너리 모드입니다. 파일 시스템이 바이너리 파일과 텍스트 파일을 구분할 수 있는 경우(Windows는 구분하지만 UNIX는 구분하지 않음) 이 옵션을 사용해야 하며, 이식성을 극대화하려면 항상 이 옵션을 사용하는 것이 좋습니다.

●$use_include_path 매개변수. include_path(PHP의 포함 경로, PHP의 구성 파일에 설정됨)에서 파일을 검색해야 하는 경우, 선택적 매개변수 $use_include_path의 값은 1 또는 TRUE로 설정할 수 있으며 기본값은 FALSE입니다. ●$context 매개변수. 선택적 $context 매개변수는 파일이 원격으로 열릴 때만(예: HTTP를 통해) 사용됩니다. fopen() 함수의 특정 작업 개체와 관련된 일부 데이터를 저장합니다. fopen()이 HTTP 주소를 열면, 그런 다음 이 변수는 FTP 주소가 열려 있는 경우 요청 유형, HTTP 버전 및 기타 HTTP 요청 헤더 정보를 기록합니다. 기록되는 것은 FTP의 패시브/액티브 모드일 수도 있습니다

2. 파일을 닫습니다. bool fclose(리소스 $handle)

4. 파일 쓰기 파일을 쓰기 전에 먼저 열어야 하며, 존재하지 않는 경우 먼저 생성해야 합니다. 일반적으로 fopen() 함수를 사용하여 생성됩니다. ●fwrite().파일을 연 후 파일에 내용을 씁니다. int fwrite(리소스 $handle, 문자열 $string [, int $length]) 설명: $handle 매개변수는 기록할 파일 핸들입니다. $string은 파일에 기록될 문자열 데이터입니다. $length는 선택적 매개변수입니다. $length가 지정되면 $string에 데이터의 첫 번째 $length 바이트를 쓴 후 쓰기가 중지됩니다. ●file_put_contents() 함수. PHP 5에서는 file_put_contents() 함수도 도입되었습니다. 이 함수의 기능은 fopen(), fwrite(), fclose() 함수를 차례로 호출하는 것과 같습니다. 구문 형식은 다음과 같습니다. int file_put_contents(string $filename , string $data [, int $flags [, resources $context ]]) 참고: $filename은 데이터가 기록될 파일의 ​​이름입니다. $data는 작성할 문자열입니다. $data는 배열일 수도 있지만 다차원 배열일 수는 없습니다. FTP 또는 HTTP를 사용하여 원격 파일에 데이터를 쓸 때 여기에 자세히 소개되지 않은 선택적 매개 변수 $flags 및 $context를 사용할 수 있습니다. 쓰기가 성공하면 함수는 쓴 바이트 수를 반환하고, 그렇지 않으면 FALSE를 반환합니다. ●fputcsv() 함수. CSV는 일반적으로 확장자가 .csv인 일반적으로 사용되는 파일 형식입니다. CSV 형식은 파일의 한 줄을 레코드로 처리하며 레코드의 필드는 쉼표로 구분됩니다. PHP에서 fputcsv() 함수를 사용하여 지정된 배열을 CSV 파일 형식을 준수하는 내용으로 포맷하고 파일 포인터가 가리키는 현재 줄을 씁니다. 구문 형식은 다음과 같습니다. int fputcsv(resource $handle [, array $fields [, string $delimiter [, string $enclosure ]]]) 설명: $handle 매개변수는 기록할 파일 핸들입니다. $fields 매개변수는 형식을 지정할 배열입니다. 선택적 $delimiter 매개변수는 필드 구분 기호(한 문자만 허용됨)를 설정하는 데 사용되며 기본값은 쉼표입니다. 선택적 $enclosure 매개변수는 필드 래퍼를 설정합니다(한 문자만 허용됨). 기본값은 큰따옴표입니다.

5가지 파일 읽기

1. 원하는 길이로 읽으세요. fread() 함수는 파일의 내용을 읽는 데 사용할 수 있습니다. 구문 형식은 다음과 같습니다. 문자열 fread(int $handle, int $length) 설명: $handle 매개변수는 열린 파일 포인터입니다. $length는 읽을 최대 바이트 수를 지정하며 $length의 최대 값은 8192입니다. $length 바이트를 읽기 전에 EOF(파일 끝 플래그)가 발견되면 읽은 문자가 반환되고 읽기 작업이 중지됩니다. 읽기에 성공하면 읽은 문자열이 반환되고, 오류가 발생하면 FALSE가 반환됩니다. 참고: 파일을 읽은 후 파일 내용을 표시할 때 텍스트에 HTML 태그와 같이 직접 표시할 수 없는 문자가 포함될 수 있습니다. 이때 파일에 문자를 표시하려면 htmlspecialchars() 함수를 사용하여 HTML 태그를 엔터티로 변환해야 합니다.

2. 전체 파일을 읽습니다. ●file() 함수. file() 함수는 전체 파일을 배열로 읽는 데 사용됩니다. 구문 형식은 다음과 같습니다. 배열 파일(문자열 $filename [, int $use_include_path [, 자원 $context ]]) 설명: 이 함수의 기능은 파일을 배열로 반환하는 것입니다. 배열의 각 단위는 줄 바꿈을 포함하여 파일의 해당 줄입니다. 실패 시 FALSE를 반환합니다. $filename 매개변수는 읽을 파일 이름입니다. $use_inclue_path 및 $context 매개변수의 의미는 앞서 소개한 것과 동일합니다. ●readfile() 함수. readfile() 함수는 파일 내용을 브라우저에 출력하는 데 사용됩니다. 구문 형식은 다음과 같습니다. int readfile(string $filename [, bool $use_include_path [, resources $context ]]) ●fpassthru() 함수. fpassthru() 함수는 현재 위치에서 EOF까지 주어진 파일 포인터를 읽고 결과를 출력 버퍼에 씁니다. 이 함수를 사용하려면 먼저 fopen() 함수를 사용하여 파일을 연 다음 파일 포인터를 fpassthru() 함수에 매개 변수로 전달해야 합니다. fpassthru() 함수는 파일 포인터가 가리키는 파일의 내용을 표준 출력으로 보냅니다. 작업이 성공하면 읽은 바이트 수를 반환하고, 그렇지 않으면 FALSE를 반환합니다. ●file_get_contents() 함수. file_get_contents() 함수는 파일 내용의 전체 또는 일부를 문자열로 읽어올 수 있습니다. 함수는 fopen(), fread(), fclose() 함수를 차례로 호출하는 것과 같습니다. 구문 형식은 다음과 같습니다. string file_get_contents(string $filename [, int $offset [, int $maxlen ]]) 설명: $filename은 읽을 파일 이름입니다. 선택적 매개 변수인 $offset은 파일 시작 부분의 오프셋을 지정할 수 있습니다. 이 함수는 $offset으로 지정된 위치부터 $maxlen 길이의 콘텐츠를 반환할 수 있습니다. 실패하면 함수는 FALSE를 반환합니다

3. 데이터 행을 읽습니다. ●fgets() 함수. fgets() 함수는 파일에서 텍스트 한 줄을 읽을 수 있습니다. 구문 형식은 다음과 같습니다. 문자열 fgets(int $handle [, int $length ]) 설명: $handle은 열린 파일 핸들입니다. 선택적 매개변수 $length는 줄 종결자를 고려하여 반환되는 최대 바이트 수를 지정합니다. 최대 길이-1바이트의 문자열이 반환될 수 있습니다. $length를 지정하지 않으면 기본값은 1024바이트입니다. ●fgetss() 함수는 fgetss() 함수가 읽은 텍스트에서 html 및 php 태그를 제거하려고 시도한다는 점을 제외하면 기본적으로 fgets()와 동일합니다. ●fgetcsv() 함수. fgetcsv() 함수는 지정된 파일의 현재 행을 읽고, CSV 형식을 사용하여 필드를 구문 분석하고, 이러한 필드가 포함된 배열을 반환할 수 있습니다. 구문 형식은 다음과 같습니다. array fgetcsv(int $handle [, int $length [, string $delimiter [, string $enclosure ]]])

4. 문자 읽기 fgetc() 함수. fgetc() 함수는 파일 포인터에서 문자를 읽을 수 있습니다. 구문 형식은 다음과 같습니다. 문자열 fgetc(자원 $handle) 이 함수는 $handle 포인터가 가리키는 파일의 문자를 반환합니다. EOF를 발견하면 FALSE

를 반환합니다.

5. 지정된 형식을 사용하여 파일을 읽습니다. fscanf() 함수. fscanf() 함수는 파일의 데이터를 읽고, 지정된 형식에 따라 형식을 지정하고, 배열을 반환할 수 있습니다. 구문 형식은 다음과 같습니다. 혼합 fscanf(자원 $handle , 문자열 $format [, 혼합 &$... ]) 형식 문자열의 공백은 입력 스트림의 공백과 일치합니다. 즉, 형식 문자열의 탭 문자 "t"도 입력 스트림의 공백 문자와 일치합니다.

6. 파일 업로드 및 다운로드

1. 파일 업로드 파일 업로드는 html 양식을 제출하여 수행할 수 있습니다. 파일이 업로드된 후에는 기본적으로 임시 디렉터리에 저장되며 이때 임시 디렉터리에서 삭제하거나 다른 위치로 이동해야 합니다. PHP의 move_uploaded_file()을 사용하여 다른 위치로 이동하세요. move_uploaded_file() 함수의 구문 형식은 다음과 같습니다. bool move_uploaded_file(string $filename, string $destination) 참고: 파일을 이동하기 전에 HTTP POST를 통해 업로드되었는지 확인해야 합니다. 이를 통해 악의적인 사용자가 스크립트를 속여 다른 방법으로는 액세스할 수 없는 파일에 액세스할 수 없도록 할 수 있습니다. 이때 is_uploaded_file() 함수를 사용해야 합니다. 이 함수의 매개변수는 파일의 임시 파일 이름입니다. HTTP POST를 통해 파일이 업로드되면 함수는 TRUE를 반환합니다. 예제 4.5 HTML 양식으로 업로드한 GIF 이미지 파일을 html 디렉터리로 이동

  1. if(isset($_POST['up']))
  2. {
  3. if($_FILES['myFile']['type']= ="image/gif") //파일 형식이 GIF인지 확인
  4. {
  5. if($_FILES['myFile']['error']>0) //에러가 있는지 확인 uploading
  6. echo "Error:".$_FILES['myFile']['error']; //오류 메시지 출력
  7. else
  8. {
  9. $tmp_filename=$_FILES['myFile'][ 'tmp_name']; //임시 파일 이름
  10. $filename=$_FILES['myFile']['name'] //업로드된 파일 이름
  11. $dir="html/";
  12. if( is_uploaded_file($tmp_filename )) //HTTP POST를 통해 업로드 여부 결정
  13. {
  14. if(move_uploaded_file($tmp_filename,$dir.$filename)) //파일 업로드 및 이동
  15. {
  16. echo "파일이 성공적으로 업로드되었습니다! ";
  17. //출력 파일 크기
  18. echo "파일 크기는 ". ($_FILES['myFile']['size']/1024)."kb";
  19. }
  20. else
  21. echo "파일 업로드에 실패했습니다!";
  22. }
  23. }
  24. }
  25. else
  26. {
  27. echo "파일 형식이 아닙니다. GIF 이미지!";
  28. }
  29. }
  30. ?>
코드 복사

2. 파일 다운로드 header() 함수의 기능은 올바른 HTTP 헤더를 브라우저에 보내는 것입니다. 헤더는 웹 페이지 콘텐츠 유형, 페이지 속성 및 기타 정보를 지정합니다. header() 함수에는 많은 함수가 있으며 여기에는 다음만 나열되어 있습니다. ●페이지 이동. header() 함수의 매개변수가 "Location: xxx"인 경우 페이지는 "xxx"가 가리키는 URL로 자동으로 이동합니다. 예를 들어: header("위치: http://www.baidu.com"); //바이두 페이지로 이동 header("위치: first.php"); //작업 디렉토리의 first.php 페이지로 이동합니다. ●웹페이지 내용을 지정합니다. 예를 들어, 동일한 XML 형식의 파일에 대해 header() 함수의 매개변수를 "Content-type:application/xml"로 지정하면, 브라우저는 XML 파일 형식에 따라 이를 구문 분석합니다. 그러나 "Content-type: text/xml"인 경우 브라우저는 이를 텍스트 구문 분석으로 처리합니다. header() 함수와 readfile() 함수를 결합하면 탐색할 파일을 다운로드할 수 있습니다

7. 기타 일반적인 파일 기능

1. 파일 크기 계산 filesize() 함수는 파일 크기를 바이트 단위로 계산하는 데 사용됩니다. fread() 함수와 결합된 filesize() 함수는 전체 파일을 한 번에 읽을 수 있습니다

2. 파일이 존재하는지 확인합니다. 파일_종료() is_dir() 함수는 주어진 파일 이름이 디렉터리인지 여부를 확인하는 데 사용됩니다. is_file() 함수는 주어진 파일 이름이 파일인지 여부를 확인하는 데 사용됩니다. is_reader() 함수는 주어진 파일을 읽을 수 있는지 여부를 확인하는 데 사용됩니다. is_writeable()은 주어진 파일이 쓰기 가능한지 여부를 결정하는 데 사용됩니다

3. 파일 삭제 연결 해제()

4. 파일 복사 bool copy(string $source,string $dest), 디렉터리 파일이 이미 존재하는 경우 덮어쓰게 됩니다

5. 파일 이동 및 이름 바꾸기 move_uploaded_file() 함수 외에도 파일을 이동할 수 있는 rename() 함수도 있습니다. 구문 형식은 다음과 같습니다. bool rename ( 문자열 $oldname , 문자열 $newname [, 자원 $context ] ) 참고: rename() 함수는 주로 파일 이름을 바꾸는 데 사용됩니다. $oldname은 파일의 이전 이름이고 $newname은 새 파일 이름입니다. 물론, $oldname과 $newname의 경로가 다르면 파일 이동 기능이 구현됩니다

6. 파일 포인터 작업 PHP에는 rewind(), ftell(), fseek() 함수 등과 같이 파일 포인터를 작동하는 많은 함수가 있습니다. 이전에 사용했던 feof() 함수는 파일 포인터가 파일의 끝에 있는지 테스트하는 데 사용됩니다. 또한 파일 포인터 작업 기능에 속합니다. 되감기() 함수. 포인터가 파일의 시작 부분으로 돌아가도록 파일 포인터 위치를 재설정하는 데 사용됩니다. 여기에는 열린 특정 파일의 파일 핸들인 하나의 매개변수만 있습니다. ftell() 함수. 파일 내 포인터 위치, 즉 파일 스트림 내 오프셋은 바이트 단위로 보고될 수 있습니다. 해당 매개변수는 열린 파일 핸들이기도 합니다. fseek() 함수. 파일 포인터를 이동하는 데 사용할 수 있습니다. 구문 형식은 다음과 같습니다. int fseek(리소스 $handle , int $offset [, int $whence ] )

예시 4.8 투표 통계

  1. JSP
  2. 현재 가장 인기 있는 웹 개발 언어:
  3. < /td>
  4. PHP
    ASP
  5. $ votefile="EX4_6_vote.txt"; //계산에 사용되는 $votefile
  6. if(!file_exists($votefile)) //파일 존재 여부 확인
  7. {
  8. $handle=fopen($votefile ,"w "); //파일이 없으면 생성
  9. fwrite($handle,"0|0|0") //파일 내용 초기화
  10. fclose($handle);
  11. }
  12. if(isset($_POST['sub']))
  13. {
  14. if(isset($_POST['vote'])) // 사용자가 투표했는지 확인
  15. {
  16. $ vote=$_POST['vote']; //투표 값 받기
  17. $handle=fopen($votefile,"r ");
  18. $votestr=fread($handle,filesize($votefile) ); / /파일 내용을 문자열로 읽습니다. $votestr
  19. fclose($handle);
  20. $votearray=explode("|", $votestr) //$votestr를 "|"에 따라 분할합니다.
  21. echo "

    투표가 완료되었습니다!

    ";
  22. if($vote=='PHP')
  23. $votearray[0]; //PHP가 선택되면 배열의 첫 번째 값에 1을 추가합니다
  24. echo " 현재 PHP 투표 수는 다음과 같습니다:".$votearray[0]."
    ";
  25. if($vote=='ASP' )
  26. $votearray[1]; //ASP가 선택된 경우 배열의 두 번째 값에 1을 추가합니다
  27. echo "ASP에 대한 현재 투표 수는 ".$votearray[1]."
    ";
  28. if($vote=='JSP')
  29. $votearray[2] ; //JSP를 선택한 경우 추가 1에서 배열의 세 번째 값
  30. echo "현재 JSP 투표 수는 다음과 같습니다:".$votearray[2]."
    " ;
  31. //총 투표 수 계산
  32. $ sum=$votearray[0] $votearray[1] $votearray[2];
  33. echo "총 투표 수: <글꼴 크기 =5 color=red>".$sum."< br>";
  34. $votestr2=implode("|",$votearray); //"|"를 사용하여 새 배열을 연결합니다. 문자열에 투표한 후 $votestr2
  35. $handle=fopen($votefile," w ");
  36. fwrite($handle,$votestr2) //파일에 새 문자열 쓰기 $votefile
  37. fclose ($handle);
  38. }
  39. else
  40. {
  41. echo "<script>alert('선택한 투표 옵션이 없습니다!')</script>";
  42. }
  43. }
  44. ?>
코드 복사


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.