텍스트 파일에 쓸 파일 이름과 json 객체를받는 함수가 있습니다.fopen (file, w +)은 flock()으로 잠겨 있는지 확인하기 전에 파일을 자릅니다.
개체가 업데이트되어 파일의 현재 내용을 완전히 대체해야합니다. 각 사이트 방문자는 자신의 파일을 가지고 있습니다. 여러 급격한 변경으로 인해 파일이 fopen(file,w+)
으로 잘린 다음 잠긴 상태로 기록되지 않습니다. 최종 결과는 빈 파일입니다.
평범한 활동이므로 표준 방법이 있습니다. 이상적으로는 파일을 자르기 전에 fopen
w+
모드에서 모드를 전환하는 방법으로 파일을 잘라내는 방법을 찾고 있습니다.
파일 핸들을 flock()
으로 전달하여 파일이 잠겼는지 확인하기 위해 fopen()
으로 파일을 자르면 이상하지만 파일을 자르면 바로 그 점이 무엇입니까? 당신은 약간의 수정으로 원하는 것을 할 것입니다 PHP manual에서
function updateFile($filename, $jsonFileData) {
$fp = fopen($filename,"w+");
if (flock($fp, LOCK_EX)) {
fwrite($fp, $jsonFileData);
flock($fp, LOCK_UN);
fclose($fp);
return true;
} else {
fclose($fp);
return false;
}
}
왜이 용도로 데이터베이스를 사용하지 않습니까? – NullUserException
이미 파일을 다루고있는 다른 프로젝트에서 프로젝트를 가져 왔습니다. 대신 데이터베이스로 작업 할 수 있도록 코드를 다시 작성할 수 있지만 다시 작업하기 전에 다른 솔루션이 있는지 확인하려고합니다. – Peter