>  기사  >  백엔드 개발  >  PHP 파일 연산 기본 코드

PHP 파일 연산 기본 코드

巴扎黑
巴扎黑원래의
2016-11-07 17:16:571370검색

PHP는 파일 시스템 작업 및 디렉터리 작업(예: "복사")을 포함하여 필요한 기능을 쉽게 구현할 수 있는 일련의 I/O 기능을 제공합니다. 아래에서는 Brothers in Arms PHP Training

의 기본 파일 읽기 및 쓰기 작업을 소개합니다. (1) 파일 읽기

(2)
파일 쓰기; 3) 문서에 추가합니다.

다음은 기본 파일 읽기 및 쓰기 작업에 대한 기사입니다. 이 기사를 읽고 기본적인 파일 작업을 배운 적이 있습니다. 모든 사람과 공유하기 위해 여기에 게시합니다.

파일 읽기:

PHP 코드:

1.
2.

3. $file_name ="data.dat"

4. // 읽을 파일의 절대 경로: homedata.dat

5.

6. $file_pointer =fopen($file_name, "r")

 7. // 파일 열기, 8. "r"은 모드, 9. 또는 수행하려는 작업 방법, 10. 자세한 내용은 이 기사 뒷부분의 소개를 참조하세요

11.

 12.$file_read =fread($file_pointer, filesize($file_name));

 13. // 파일 포인터를 통해 파일 내용 읽기

15.

 16.fclose($file_pointer);

 17. // 파일을 닫습니다

 18.

 19.print "읽은 파일 내용은 다음과 같습니다. $file_read";

20. // 파일 내용 표시

21. ?>

22.

파일 쓰기:

PHP 코드:

1.
2.

3. $file_name ="data.dat"

4. // 물론입니다. 경로: homedata.dat

5.

6. $file_pointer =fopen($file_name, "w")

7. // "w"는 모드입니다. , 8. 자세한 내용은 아래를 참조하세요

9.

10. fwrite($file_pointer,"what you want write")

11. // 먼저 파일을 잘라냅니다. 12. 를 0바이트 크기로 잘라냅니다. 13. 그런 다음

을 씁니다. 14.

15. fclose($file_pointer)

16. // 끝

17.

18. print "데이터가 파일에 성공적으로 기록되었습니다";

19.

20. ?>

21.

파일 끝에 추가:

PHP 코드:

1.
2.

3. $file_name =" data .dat";

4. // 절대 경로: homedata.dat

5.

6. $file_pointer =fopen($file_name, "a");

7. // "w" 모드

8.

9. fwrite($file_pointer,"추가하고 싶은 내용")

10 . // 아니요 11. 12. 파일을 0바이트로 자르고, 13. 파일 끝에 데이터를 추가합니다

 14.

 15.fclose($file_pointer)

16. // 종료

17.

18. print "데이터가 파일에 성공적으로 추가되었습니다."

19.

20. ?>

21.

위 내용은 간략한 소개에 불과하며, 아래에서는 좀 더 심층적인 내용을 다루겠습니다.
|1|Mukul|15|남성|인도(n)

|2|Linus|31|남성|핀란드(n)

이제 2명이 되었습니다 등록 동시에 파일 손상 유발 ->

info.file ->

|1|Mukul|15|남성|인도

|2|Linus|31| Male| Finland

|3|Rob|27|Male|USA|

Bill|29|Male|USA

위의 예에서 PHP는 Rob의 정보를 파일 이때 우연히 Bill이 쓰기 시작했는데 Rob의 레코드에 있는 'n'을 써야 해서 파일이 손상되는 일이 일어났습니다.

우리는 이런 일이 발생하는 것을 절대 원하지 않으므로 파일 잠금을 살펴보겠습니다.

PHP 코드:

1.
2 .  

3. $file_name ="data.dat";  
4.  

5. $file_pointer =fopen($file_name, "r");

 6.

 7.$lock =flock($file_pointer, LOCK_SH);

 8.//저는 4.0.2를 사용합니다. 9. 그래서 LOCK_SH를 사용합니다. 10. 1. , filesize($file_name));

 15.$lock =flock($file_pointer, LOCK_UN)

 16. // 버전이 다음과 같은 경우 PHP4.0.2 미만, 17. LOCK_UN 대신 3을 사용하세요

18.

19. }

20.

21. fclose($file_pointer);

22.

23. print "파일 내용은 $file_read입니다." ;

24.

25. ?>

26.

위의 예에서 read.php와 read2.php 파일이 모두 필요한 경우 파일을 가져온 후 저장하면 읽을 수 있지만 프로그램이 쓰기가 필요한 경우 읽기 작업이 완료되고 파일이 해제될 때까지 기다려야 합니다.

PHP 코드:

1.
2.

3. $file_name ="data.dat"

4.

5. $file_pointer =fopen($file_name, "w")

6.

7. $lock =flock($file_pointer, LOCK_EX) ;

 8. // PHP4.0.2 이하 버전인 경우 9. LOCK_EX를 2로 교체

 10.

 11.if ($lock) {

12.

13. fwrite($file_pointer,"무엇을 쓰고 싶은지")

14. Flock($file_pointer,LOCK_UN)

15. // 버전이 PHP4.0.2보다 낮은 경우 16. LOCK_UN을 3으로 대체

 17.($file_pointer)

21.

22. 인쇄 "파일에 데이터가 성공적으로 기록되었습니다";

23.

24. ?>

 25.

"w" 모드를 사용하여 덮어쓰지만 파일이 적용되지 않는 것 같습니다.

PHP 코드:

1.
2.

3. $file_name ="data.dat"

4.
5. $file_pointer =fopen($file_name, "a")

6.

7. $lock =flock($file_pointer, LOCK_EX) ;

 8. // PHP4.0.2 이하 버전인 경우 9. LOCK_EX를 2로 교체

 10.

 11.if ($lock) {

 12.

 13.fseek($file_pointer, 0,SEEK_END)

 14. // 버전이 PHP4.0RC1보다 작을 경우, 15. fseek( $file_pointer, filsize( $file_name));

16.

17. fwrite($file_pointer,"무엇을 쓰고 싶으신가요?")

18. Flock($ file_pointer,LOCK_UN);

 19. // PHP4.0.2 이하 버전인 경우 20. LOCK_UN을 3으로 교체

 21.

 22. }

 23.

24. fclose($file_pointer);

25.

26. print "데이터가 파일에 성공적으로 기록되었습니다." 28. ? >

29.

흠... 데이터를 추가하는 것은 다른 작업과 조금 다른데, FSEEK는 항상 파일 포인터가 끝에 있는지 확인하는 것이 좋은 습관입니다! 파일의.

Windows 시스템이라면 위 파일 앞에 ''가 와야 합니다.

FLOCK 잡담:

파일이 열린 후에만 Flock() 잠금이 해제됩니다. . 위 열에서는 파일이 열린 후 잠겨 있습니다. 이제 파일의 내용은 당시의 내용일 뿐이며 다른 프로그램 작업의 결과를 반영하지 않습니다. 따라서 파일 추가에만 fseek를 사용해야 합니다. 작업뿐만 아니라 읽기 작업에도 사용됩니다.

(여기 번역이 별로 정확하지 않을 수도 있지만 대략 이해가 가는 것 같습니다.)

모드 정보:

'r' - 읽기 전용 모드로 열기, 파일 포인터는 파일 시작 부분에 배치됩니다.

'r+' - 열기 모드 읽기-쓰기 모드에서는 파일 포인터가 파일 헤더

'w'에 배치됩니다. 쓰기 전용으로 열리며, 파일 포인터가 파일 헤더에 배치되고, 파일이 0바이트로 잘립니다. 파일이 없으면

'w+' - 읽기 쓰기를 위해 엽니다. 파일 포인터는 파일 시작 부분에 위치하며, 파일이 없으면 파일 크기가 0바이트로 줄어듭니다. 존재하면 파일 생성을 시도

'a' - 쓰기 전용으로 열려 파일 포인터는 파일 끝에 위치하며, 파일이 존재하지 않으면 파일 생성을 시도

'a+' - 읽기 및 쓰기용으로 열림, 파일 포인터는 파일 끝에 위치, 파일이 없으면 파일 생성 시도

그런데 파일 디렉터리 생성 코드

//"../../../xxx/xxx.txt"와 유사한 디렉터리를 생성합니다.

함수creaters($path,$mode = 0777) //mode 077

 {

$dirs =explore('/',$path);

$pos = strrpos($path,".")

if ($pos === false) { //참고: 세 개의 기호가

// 찾을 수 없음, 파일이 아닌 디렉터리의 경로 끝을 의미함

$subamount=0; >
 }

else {

$subamount=1;

 }

for ($c=0;$c
$thispath="";

for ($cc=0; $cc
$thispath.=$dirs[$cc].'/' ;

 }

if(!file_exists($thispath)) {

  //print "$thispath

"; mode);//mkdir 함수는 /xxxx/xxxx" 디렉토리를 생성합니다.);

//원래 함수에서는 $GLOBALS["dirseparator"]를 사용했고 이를 '/'로 변경했습니다.

functionrecur_mkdirs($path, $mode = 0777) //모드 0777

 {

//$GLOBALS["dirseparator"]

 $dirs =explode($ GLOBALS["dirseparator"],$path);

$pos = strrpos($path,".");

if ($pos === false) { //참고: 세 개의 등호

// 찾을 수 없음, 파일이 아닌 dir에 경로 끝이 있음을 의미함

 $subamount=0

 }

 else {

 $subamount=1; 🎜> }

이것은 초보자에게 매우 유용한 코드입니다.

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