PHP : FILE ON 파일의 독점 잠금 장치
문제
내 PHP 스크립트에서 문자열을 구문 분석 한 후 파일에 일부 데이터를 쓸 필요가 있습니다 (존재하지 않으면 생성 한 후).파일을 작성하기 전에 문제를 피하기 위해 독점 잠금이 필요합니다. 이것은 내 코드입니다 :
foreach ($elements[0] as $current) {
$file_handler = fopen($my_folder . "/" . $current . ".txt", "a");
$locked = flock($file_handler, "LOCK_EX");
while (!$locked) {
usleep(500000);
$locked = flock($file_handler, "LOCK_EX");
}
//got lock
fwrite($file_handler, $mystring . "\n");
//release lock
flock($file_handler, LOCK_UN);
fclose($file_handler);
}
return;
.
이제는 무언가가 작동하지 않는 것 같습니다. fopen 파일을 만드는 것이지만, 내 코드는 내부에서 루프로 들어가는 것 같습니다 (파일이 만들어 지지만 내부에는 쓰지 않았습니다).뭐가 잘못 됐니?
해결책
상수 대신 문자열로 잠금을 전달하는 것입니다.
시도 :
$locked = flock($file_handler, LOCK_EX);
.
lock_ex
주위에 누락 된 큰 따옴표를 주목하십시오.제휴하지 않습니다 StackOverflow