PHP блокирует файл. Не могу его прочитать

lutskboy
На сайте с 22.11.2013
Offline
173
266

Привет

у меня есть скрипт php. если кратко, то там curl и в нем функция CURLOPT_WRITEFUNCTION

она постепенно пишет текст в файл.

function write_to_tmp($file, $data) {
 file_put_contents($file, $data, LOCK_EX | FILE_APPEND);
}

потом я посылаю с помощью js ajax запрос и считываю его содержание.

$.get('/path/to/file.tmp')

все ето вывожу типа в реальном времени. но в ispmanager php-fpm оно мне не выводит  содержимое файла. выведет уже в конце весь текст как  curl  отработает. в других режимах  php вроде нормально. есть ли решение?

W1
На сайте с 22.01.2021
Offline
289
#1
lutskboy :
не выводит  содержимое файла

Дык ведь LOCK_EX. Чтобы при чтении не получить невесть что.

Мой форум - https://webinfo.guru –Там я всегда на связи
lutskboy
На сайте с 22.11.2013
Offline
173
#2
webinfo #:

Дык ведь LOCK_EX. Чтобы при чтении не получить невесть что.

я убирал. все то же. и  LOCK_EX вроде для блокировки файла когда в него пишут, а не когда считывают

W1
На сайте с 22.01.2021
Offline
289
#3
lutskboy #:
LOCK_EX вроде для блокировки файла когда в него пишут, а не когда считывают

Для блокировки чтения другими скриптами, когда в него пишет этот скрипт.

lutskboy
На сайте с 22.11.2013
Offline
173
#4
webinfo #:
Для блокировки чтения другими скриптами, когда в него пишет этот скрипт.

не суть. с LOCK_EX   или без. все равно не так как мне нужно. 

LEOnidUKG
На сайте с 25.11.2006
Online
1727
#5

Решение может быть с другой стороны. Случаем сессия не стартует нигде? А кто инициатор этого запуска curl скрипта?

Пробовали запускать скрипт curl в одном окне, а считывать в анонимной вкладке для теста?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
lutskboy
На сайте с 22.11.2013
Offline
173
#6
LEOnidUKG #:

Решение может быть с другой стороны. Случаем сессия не стартует нигде? А кто инициатор этого запуска curl скрипта?

Пробовали запускать скрипт curl в одном окне, а считывать в анонимной вкладке для теста?

Лёня, логика там такая. я шлю ajax на script.php

в нем примерно такое

if (isset($argv) AND count($argv)) {
  // тут сидит curl
  // и пишет в файл текст
  exit;
}

$cmd = sprintf('php %s %s > /dev/null &', __FILE__, $arg);
shell_exec($cmd)
Aisamiery
На сайте с 12.04.2015
Offline
294
#7
lutskboy #:

Лёня, логика там такая. я шлю ajax на script.php

в нем примерно такое

пишите не в файл а в редис например

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
NoMoreContent
На сайте с 14.05.2023
Offline
23
#8
echo shell_exec('tail -n9999 /where/is/myfile.txt');
chmod 0777 /where/is/myfile.txt

Это не готовое решение, а возможные направления о чем подумать.

lutskboy
На сайте с 22.11.2013
Offline
173
#9
NoMoreContent #:

Это не готовое решение, а возможные направления о чем подумать.

тоже думал через php считывать. но с помощью file get contents. 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий