Иконка ресурса

Post Content Find / Replace 2.0.1

Нет прав для скачивания
подскажите, ему нужно больше памяти? чем выделено...
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes) in /var/www//data/www/.net/src/XF/Db/Mysqli/Statement.php on line 125

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /var/www//data/www/.net/src/XF/Error.php on line 1
реально 1,5гига?
95474
 
Последнее редактирование:
Нахрена козе баян каждый раз дергать замену, иногда есть смысл разово заменить по базе. Типичный кейс - при переезде с другого движка или смене домена.

подскажите, ему нужно больше памяти? чем выделено...

реально 1,5гига?
Где там 1,5 гига, я вижу 128М - это дефолт и это мало.
 
Последнее редактирование:
Нахрена козе баян каждый раз дергать замену, иногда есть смысл разово заменить по базе. Типичный кейс - при переезде с другого движка или смене домена.
значит я не верно понял, тот плагин просто меняет на лету данные? но в базе оставляет? тогда он не вариант
подскажите регулярку
Код:
[HIDE="77"]текст[/HIDE]
на
Код:
[POSTS=77]текст[/POSTS]
я памяти добавлю
 
Нахрена козе баян каждый раз дергать замену, иногда есть смысл разово заменить по базе.
.потому что этот аддон делает это криво. Он ищет посты, получает их в переменную и по-очередно каждый изменяет. Это приемлемо, если постов штук 10, но если постов даже 500 штук, то это уже дохера памяти и 500 запросов в БД.
Намного лучше сделать запрос в БД.
 
.один раз 500 запросов в БД? И я об этом, за один раз 500 запросов.
А потом
Код:
                    /** @var \XF\Service\Post\Editor $editor */
                    $editor = $this->service('XF:Post\Editor', $post);

                    $editor->setIsAutomated();
                    $editor->logEdit(false);
                    $editor->logHistory(false);
                    $editor->setMessage($message, false);

                    $editor->save();
Этим плагин и радикально отличается от автоцензора.
 
А потом
Код:
                    /** @var \XF\Service\Post\Editor $editor */
                    $editor = $this->service('XF:Post\Editor', $post);

                    $editor->setIsAutomated();
                    $editor->logEdit(false);
                    $editor->logHistory(false);
                    $editor->setMessage($message, false);

                    $editor->save();
Этим плагин и радикально отличается от автоцензора.
.это и есть те запросы в БД за один раз. На каждый пост один запрос. Вот этим он и отличается.
 
На каждый пост один запрос. Вот этим он и отличается.
После чего содержимое поста сохранено и после окончания всех работ по переносу/модификации, плагин можно даже удалить.
 
После чего содержимое поста сохранено и после окончания всех работ по переносу/модификации, плагин можно даже удалить.
.ну и к чему всё это было? Я указал на то, что плагин требует слишком много ресурсов для замены, когда это можно делать одним запросов в БД, если уже так хочется изменить прямо в теле сообщения.
 
ну и к чему всё это было? Я указал на то, что плагин требует слишком много ресурсов для замены, когда это можно делать одним запросов в БД, если уже так хочется изменить прямо в теле сообщения.
К тому что ему надо просто перенести bb-коды после переезда, это разовая операция, по факту потребляемые ресурсы не важны, форум можно/лучше закрыть на время работ. А 128М оперативки ему и так мало, даже для обычной работы обычного форума. Автоцензор здесь как собаке пятая лапа - можно, но не результативно.
 
К тому что ему надо просто перенести bb-коды после переезда, это разовая операция, по факту потребляемые ресурсы не важны, форум можно/лучше закрыть на время работ. А 128М оперативки ему и так мало, даже для обычной работы обычного форума. Автоцензор здесь как собаке пятая лапа - можно, но не результативно.
.чё за бред? Без разницы разовая эта операция или нет, если ты не можешь её сделать из-за того, что ресурсов не хватает. И не потому что их мало, а потому что реализация дерьмо. И с чего это не результативно? Результат есть и ничем не хуже. И нет риска что-то потерять.
 
Без разницы разовая эта операция или нет
Есть разница, и чем больше изменений, тем больше разница.

если ты не можешь её сделать из-за того, что ресурсов не хватает
Для разовой операции ресурсы можно найти, память временно подкинуть, проц разгрузить/подобрать момент, временно переехать на другой хост/тариф. Другой вопрос, а как будет вести себя автоцензор с 1к замен, тем более регулярок? А 5к? А 10к? А при числе постов в 7 порядков? А посещалка?

а потому что реализация дерьмо
Реализация как реализация, штатное
$editor = $this->service('XF:Post\Editor', $post); $editor->setIsAutomated(); $editor->logEdit(false); $editor->logHistory(false); $editor->setMessage($message, false); $editor->save();
Результат есть и ничем не хуже.
Человеку нужно перманентно перебить урл один на другой, bb-код один на другой. вынести на поддомен или еще что-то в этом духе. Подобные кейсы реализовывать через автоцензор можно, но не нужно, результативней один раз

Мораль проста: каждому кейсу свой инструмент.
 
Или выгрузить бекап на локальный пк сделать всё на хоум тачке и залить на сервак
 
Для разовой операции ресурсы можно найти, память временно подкинуть, проц разгрузить/подобрать момент, временно переехать на другой хост/тариф. Другой вопрос, а как будет вести себя автоцензор с 1к замен, тем более регулярок? А 5к? А 10к? А при числе постов в 7 порядков? А посещалка?
.ооооо... Микросекунды всё решают конечно же.

Ещё раз повторюсь: реализация дебильная, потому что не учитывается количество постов. С такой реализацией нужно было делать это через Job, обрабатывая посты постепенно, а не сразу все.
Сюда бы Exile, который хейтил меня за бб-коды или что там было :D

Также в MariaDB, начиная с 10.0.5, есть прекрасная функция REGEXP_REPLACE, с помощью которой можно одним запросом всё это спокойно сделать.
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: Faul
С такой реализацией нужно было делать это через Job, обрабатывая посты постепенно, а не сразу все.
Надо было. Почему так не сделано не особо понятно.
Также в MariaDB, начиная с 10.0.5, есть прекрасная функция REGEXP_REPLACE, с помощью которой можно одним запросом всё это спокойно сделать.
Ага, залочив таблицу на неопределенное время, смотря какой у нее размер будет.
 
  • Мне нравится
Реакции: Hope
При попытке замены выдаёт ошибку:

Код:
ErrorException: [E_WARNING] preg_match_all(): Delimiter must not be alphanumeric or backslash in src/addons/XFPR/Admin/Controller/PostReplace.php at line 41
XF::handlePhpError()
preg_match_all() in src/addons/XFPR/Admin/Controller/PostReplace.php at line 41
XFPR\Admin\Controller\PostReplace->actionReplace() in src/XF/Mvc/Dispatcher.php at line 249
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 88
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 41
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 1934
XF\App->run() in src/XF.php at line 333
XF::runApp() in admin.php at line 13

В чём может быть проблема?
 
Не пойму, о какои разделителе идёт речь?
Вот та самая строка:

95582

Он у меня на любые действия так реагирует после кнопки продолжить.
Например вот:

95581
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу