есть на хосте фаил, к которому дописывается строчки) если потоков много, то фаил просто пишеться а не дописывается, как исправить?) вот пример как сейчас file_put_contents(file_get_contents("asd.log")."\n".$prrr); как осуществить это?)
PHP: $f = fopen('asd.log', 'a+'); if($f) { flock($f, LOCK_EX); fputs($f, "\n".$prrr); flock($f, LOCK_UN); fclose($f); } А читать каждый раз файл полностью, а потом снова его записывать, как у тебя сделано, - бред полный...
вообще то PHP: file_put_contents($filename, $text."\n",FILE_APPEND) если нужно именно file_put_contents
Тогда уж PHP: file_put_contents($filename, $text."\n",FILE_APPEND | LOCK_EX); Можно конечно, я просто по старым привычкам из PHP 4 редко новые функции использую, когда есть эквивалентные старые.
спасибо, разобрался, помог |qbz| в частности) а в чем разница между file_put_contents($filename, $text."\n",FILE_APPEND | LOCK_EX); и просто file_put_contents($filename, $text."\n",FILE_APPEND); ?)
А ты открой php.net и почитай, там даже на русском. LOCK_EX как раз тебе заблокирует файл, пока в него что-то пишется, и другие скрипты не смогут его переписать, пока занявший скрипт файл его не закроет. То бишь, никакие данные не потеряются, даже если очень оживленно работать с файлом.
думаю "на ходу" не стоит менять пхп фаил)) как закончиться работа, добавлю " | LOCK_EX", лучше 2 - 10 строчек не будет чем потерять все))