2011-06-14 8 views
2

필자는 쓰기 위해 파일을 열었다가 닫히는 데 제약이없는 함수가 있습니까? 나는이하나의 함수를 사용하여 파일에 쓰기

bool thefunction(string line, string path, string mode); 

라인처럼 보이는 하나 개의 함수를 찾고 있어요 내가 경로 및 중 문서의 끝 또는 시작시 모든 내용을 삭제에서있는 파일에 기록 할 것입니다 모드 인수로 정의됩니다. 이것은 약간 까다롭게 들리지만 아이디어입니다. 나는 카운트를 만들고 그 안에 값을 증가시키기위한 파일이 필요하다.

+5

. 파일의 값을 읽을 때와 새로운 값을 쓸 때 사이에 시간이있을 것입니다. 이전 값을 읽고 증분 한 다음 다시 쓰는 단일 원자 연산이 필요합니다. 파일 IO를 사용하는 유일한 방법은'flock()'을 사용하는 것입니다. 원자 증분 작업을 제공하는 memcached를 사용하는 것이 실제로 더 쉽습니다. –

답변

4

file_put_contents()을 살펴보십시오. file_put_contents()과 다른 사용 권한이 필요한 경우에도 파일을 chmod()해야합니다.

예 :

당신이 file_put_contents를()가`정말 당신이 경쟁 조건을 방지하는 데 도움이되지 않는 파일의 증가 값을 작성하는`사용하더라도
// This writes a line to a file, appending to what's already there 
$success = file_put_contents("/path/to/file.txt", "This string goes into the file\n", FILE_APPEND); 
+0

대답은 더 짧아 질 수 없습니다 ... 감사합니다 Michael – user544262772

+0

@Oddantfr 도와 드리겠습니다. @Frank Farmer가 위에서 언급했듯이 경쟁 조건에는 영향을받지 않습니다. –

관련 문제