Блокировка файла лога на момент записи/чтения PHP

В PHP я полный ноль, помогите пожалуйста, дописать в код блокировку файла лога на момент записи/чтения? Ну чтобы и раз блокировка была а то я вроде как написал, точнее добавил в конец кода FILE_APPEND | LOCK_EX); он заблокировал и не открывает не идет запись. Вообщем кто знает посмотрите пожалуйста. Вот сам код :

<?php
$file="user3";    //куда пишем логи
$col_zap=4999;        //строк в файле не более

function getRealIpAddr() {
  if (!empty($_SERVER['HTTP_CLIENT_IP']))        // Определяем IP
  { $ip=$_SERVER['HTTP_CLIENT_IP']; }
  elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))    // Если IP идёт через прокси
  { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
  else { $ip=$_SERVER['REMOTE_ADDR']; }
  return $ip;
}

if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
else { $bot=$_SERVER['HTTP_USER_AGENT']; }

$ip = getRealIpAddr();
$date = date("H:i:s d.m.Y");        //дата события
$home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];    //какая страница сайта
$lines = file($file);
while(count($lines) > $col_zap) array_shift($lines);
$lines[] = $date."|".$bot."|".$ip."|".$home."|\r\n";
file_put_contents($file, $lines);
?>

Есть код в котором это присутствует, но я не могу понять как это перенести, вроде так понимаю а перенести не могу. Какие то строчки да умудряюсь внести а какие то не могу понять.

Код в котором присутствует блокировка и наоборот:

<?php
$fh=fopen("file.txt", "a+");    //открываем для чтения/записи
flock($fh, LOCK_EX);    //блокируем файл
fseek($fh, 0);    //ставим указатель на начало файла
while (!feof($fh)) $line. = fread($fh,2048);    //считываем из файла

//здесь производим обработку считанных данных

ftruncate($fh, 0);    //очищаем файл
fwrite($fh, $Res_$line);    //записываем в файл
flock($fh, LOCK_UN);    //снимаем блокировку
fclose($fh);    //закрываем файл
?>

Ответы (0 шт):