2011-10-06 5 views
0

이 코드는 먼저 파일을 만들고 닫은 다음 'a'으로 파일을 열고 파일에 기록한 다음 닫습니다. 그것을 단순화하는 방법이 있습니까? 파일 이름이있는 경우 덮어 써야한다는 아이디어가 있습니다. 나는 또한 unset의 요점을 이해하지 못한다. 그게 필요 할까?이 fopen 코드를 개선 할 수 있습니까

$fp = fopen($file_name, 'w'); 
fclose($fp); 
unset($fp); 
$fp = fopen($file_name, 'a'); 
fputs($fp, "sometext"); 
fclose($fp); 
unset($fp); 

답변

1

fopen의 'w'모드에서 php.net에서 : 쓰기 전용으로 열림; 파일 포인터를 파일의 시작 부분에 놓고 길이가 0 인 파일을 자릅니다. 파일이 없으면 파일을 만듭니다.

즉, 쓰기 위해 열어서 필요에 따라 덮어 쓰거나 작성하십시오. 추가 모드를 사용할 필요가 없습니다.

$fp = fopen($file_name, 'w'); 
fputs($fp, "sometext"); 
fclose($fp); 
+0

"파일 이름이 존재하면 파일 이름이 필요합니다. 덮어 씁니다. " – zerkms

+0

@zerkms 처음에는 정확히 같은 이름을 가진 모든 것을 덮어 쓰고 있습니다. 그 후 그 시점부터 필자는 파일에 쓰고있다. – sameold

+0

죄송합니다, 잠 가야합니다. 그러면 'w'로 fopen을 호출하면됩니다. http://php.net/manual/en/function.fopen.php를보고 '모드'섹션으로 스크롤하십시오. – lynks

1
file_put_contents($file_name, 'sometext'); 

그리고, 아니, unset()는 귀하의 경우 무의미하다.

+0

파일이 없으면 파일 내용을 작성합니까? – sameold

+0

@sameold : 예 : "파일 이름이 없으면 파일이 만들어지고, 그렇지 않으면 FILE_APPEND 플래그가 설정되어 있지 않으면 기존 파일을 덮어 씁니다." – zerkms

관련 문제