Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,952

Не пишет в файл

17.08.2018, 13:29. Показов 680. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Пишу скрипт чтения и сохранения массива в файл.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$dirr=$_SERVER['DOCUMENT_ROOT'].'/massa262.php';
$res = include_once($dirr);
 
if (empty($res)){
  $res=[...];
}else{
 обработчик -> обновляем после него содержимое $res
}
 
$arrayFile = "<?php\r\n\r\n"
          ."return " . var_export($res, TRUE) . ";"
          ."\r\n?>";
 
 
file_put_contents($dirr, $arrayFile, LOCK_EX);
так вот проблема в том что первый раз когда файл пустой все сохраняется, после обновления страницы
$res уже не пустой и при попытке сохранить обновленные результаты получаю failed to open stream: Too many open files

ulimit на сайте выставлен в 500000
права на файл проверил нормальные, не меняются. если очищу содержимое то первый шаг когда пусто выполняется, второй нет.
так же заметил, что это касается всех файлов на сайте если запись маленькая сохранение проходит, но не более 5-10 раз на 1 файл
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.08.2018, 13:29
Ответы с готовыми решениями:

Не пишет строки в файл
Здравствуйте пытаюсь записать данные полученные с формы в файл работает все в /var/www/ а пишется в ~/test.txt код &lt;?php ...

PHP не пишет в файл, когда запускается через Cron
Всем доброго времени суток. Собственно, требуется помощь, проблема уже описана в заголовке. В Cron стоит задание на выполнение файла...

ExcelWriter пишет данные в файл текстовом виде (а нужно в формате int и даты)
Собственно проблема описана в заголовке. Получившийся документ эксель содержит в себе лишь данные строкового типа. ...

9
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
19.08.2018, 13:48
попробуйте поменять хостинг
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
19.08.2018, 14:07
Цитата Сообщение от ytf Посмотреть сообщение
попробуйте поменять хостинг
А если и на новом хостинге не будет работать, то что в этом случае делать?
0
2 / 1 / 1
Регистрация: 11.04.2015
Сообщений: 78
19.08.2018, 15:21
Jewbacabra, Попробуйте лучше сначала на OpenServer'e
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
19.08.2018, 15:32
Цитата Сообщение от андрей пушной Посмотреть сообщение
Попробуйте лучше сначала на OpenServer'e
Мне то зачем?
0
2 / 1 / 1
Регистрация: 11.04.2015
Сообщений: 78
19.08.2018, 15:33
Упс, не тот ник нажал
0
 Аватар для otto-fukin
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
19.08.2018, 16:44
Цитата Сообщение от tgarl Посмотреть сообщение
ulimit на сайте выставлен в 500000
это фэнтези. Оставить незакрытыми столько ресурсов с помощью php даже на самом дорогущем тарифе не получится
Цитата Сообщение от tgarl Посмотреть сообщение
это касается всех файлов на сайте если запись маленькая сохранение проходит, но не более 5-10 раз на 1 файл
А 5 открытых файлов после которых вас рубят - хватит для любой задачи. А если не хватит - архитектора менять нужно.
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,952
20.08.2018, 10:03  [ТС]
Да проблема как раз в том, что я в настройках сервера ноль. У нас арендованный сервер. Его нам настроили по своим понятиям как правильно и все. А теперь вот всплыл такой момент. Я методом тыка и меняю параметры.
Насколько я понял проблема не в ulimi, а в pcre.recursion_limit. Но вот его настроить пока не могу.
У нас дебиан + php7.1-fpm
На просторах инета нашел примеры, но видимо где-то в других местах нужно вносить изменения, пока все по прежнему
0
 Аватар для otto-fukin
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
20.08.2018, 10:31
ulimit клиент изменять не может. потому что потребуется перезагрузка сервера. Если вы с файлами работаете, поиском найдите в своей программе где они открываются. потом найдите где они закрываются. Не только текстовые файлы. например дескрипторы изображений тоже нужно закрывать. как в си. И завязывайте работать с изменяемыми файлами на сервере. есть sql
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,952
20.08.2018, 12:17  [ТС]
И завязывайте работать с изменяемыми файлами на сервере. есть sql
Это не решение проблемы. Работать с файлами приходится по определенным причинам. Это cms типа вордпреса(не спорю не только эта cms) завязаны только на базу данных, а к примеру битрикс на файлы + бд(и да я считаю, что вордпрес по сравнению с битриксом хуже, поэтому сразу давайте эту тему не поднимать, что лучше, а что хуже).

Кроме того банально для отладки кода удобно использовать запись в файл - сформировал массив и в файл его, код дошел до какой-то строки сделать пометку в файле и т.д., затем анализ того, что получил в файле. И пользователь не видит, что ты делаешь и у тебя есть возможность сравнивать файлы локально потом.

По факту как я понимаю не правильно настроен у меня дебиан + php7.1-fpm. в частности лимиты и pcre.recursion_limit.
выставлял pcre.jit=0, pcre.backtrack_limit=100000, pcre.recursion_limit=100000
создавал файл /etc/systemd/system/php7.1-fpm.service.d с записью
[Service]
LimitSTACK=infinity

прописывал в /etc/security/limits.conf и sysctl.conf лимиты под пользователей

перезапускал
systemctl daemon-reload
systemctl restart php7.1-fpm

не помогает((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2018, 12:17
Помогаю со студенческими работами здесь

пишет что .dbf файл не найден, хотя .accdb файл есть
куда мог подеваться файл с .dbf ? и как его вернуть, файл с расширением .accdb на месте.

Не удаётся удалить файл - Windows 10 пишет, что невозможно открыть файл INSTALL.LOG
Возникла проблема, что при попытке удалить файл игры в разделе Приложения и возможности Windows 10 выскакивает надпись, что невозможно...

Процесс 1 открывает файл и порождает потомка 2, после этого пишет в файл N байт, закрывает его и завершается
Здравствуйте! Есть задание:&quot;Процесс 1 открывает файл и порождает потомка 2, после этого пишет в файл N байт, закрывает его и...

Не могу файл чтобы отредактировать код в Joomla, на скриншоте показано, там пишет inline, где находиться этот файл?
Не могу файл чтобы отредактировать код в Joomla, на скриншоте показано, там пишет inline, где находиться этот файл? Спасибо за любую...

Не могу открыть файл в виртуальном диске, при открытии файла пишет: не удается найти "F:\(файл).exe"
Здраствуйте отзывчивые и мудрые програмисты! Проблема у меня слудующая - немугу открыть файл в вирутальном диске, при открытии файла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru