@artem78

Как сделать ассихронную запись в файл на php?

Есть такой код:
file_put_contents(__DIR__ . '/testfile.txt', 'Start ' + $_GET['id'], FILE_APPEND);
sleep(5);
file_put_contents(__DIR__ . '/testfile.txt', 'End ' + $_GET['id'], FILE_APPEND);


Если к скрипту одновременно выполнить два запроса, в файл запишется:

Start 1
Start 2
End 1
End 2


Как можно сделать, чтобы в таком случае строки в файл записывались как при последовательном вызове:

Start 1
End 1
Start 2
End 2
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
file_put_contents(__DIR__ . '/testfile.txt', 'Start ' + $_GET['id'], FILE_APPEND | LOCK_EX);
sleep(5);
file_put_contents(__DIR__ . '/testfile.txt', 'End ' + $_GET['id'], FILE_APPEND | LOCK_EX);

или накапливать данные в переменной, затем заносить скопом.
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
писать лог в конце выполнения весь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы