Иногда при обработке с помощью PHP больших и не очень данных, можно словить досадную ошибку посреди выполнения скрипта: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) Конечно, можно увеличить memory_limit в php.ini или дописать в скрипт: ini_set(‘memory_limit’,’256M’);
Рубрика: Трудовыебудни
Что не так с функцией file_put_contents() в PHP?
Если в кратце, то суть такая: file_put_contents() не атомарен и не гарантирует записи данных файл, а может вообще очистить его содержимое так и не записав новое содержимое. Синтаксический сахар это хорошо. Судя по описанию, функция file_put_contents() идентична последовательным успешным вызовам функций fopen(), fwrite() и fclose(), что влечёт за собой некоторые особенности, связанные с […]
Cлучайные числа с плавающей точкой в PHP
Стандартные библиотеки PHP умеют генерировать только целые случайные числа. Однако, возникают задачи где нужно не целое рандомное число с максимально длинным хвостом, например, в диапазоне от 0 до 1. В таком случае можно воспользоваться таким способом:
Что не так с этим скриптом?
Очень крутая задача, в которой не всё так просто, как кажется на первый взгляд. Попробуйте найти в ней 2 логические ошибки. SQL-инъекция здесь служит отвлекающим манёвром. <?php $dest = $_POST[‘destination’]; $result = $_POST[‘data’][‘result’]; $output = «»; if ($dest == ‘file’) { $file = fopen(‘storage.txt’, ‘a+’); fwrite($file, $result); […]
Чистка логов docker-контейнеров
Весь stdout контейнеров докер бережливо сохраняет в файлики. По-дефолту эти логи никак не ротируются и копятся до тех пор, пока не закончится место на диске. Если неизбежное произошло, можно элегантно освободить место на диске следующей командой:
Как в Laravel 5.5 и 5.4 получать select в виде массива, а не объекта
Laravel, как и большинство фреймворков жертвуют производительностью и потреблением ресурсов ради сомнительных вещей. Как известно, зачастую узким местом приложений становится база данных, фреймворки же это бутылочное горлышко уменьшают до диаметра волоска. По-умолчанию все данные получаемые через фасад DB возвращаются в виде объектов, массива объектов или коллекции объектов, что может до 10 […]
Как редактировать crontab через nano
Vim не самый юзер-френдли текстовый консольный редактор, например, nano на порядок удобнее и интуитивнее. Однако, именно vim является редактором для крона по-умолчанию в CentOS.
Вачдог по-быстрому
Бывают ситуации, когда что-то идёт не так и нужно по-быстрому запилить килялку чего либо и как можно скорее вернуться к выполнению основной задачи. Типичная ситуация: плодятся процессы, которые никто не прибивает, что приводит к утечке ресурсов и тормозам на всём сервере. Самым быстрым способом будет мониторинг количества процессов и рестарту […]
Как использовать команду watch с пайпами
Периодически при работе с консолью Linux нужно пронаблюдать за изменением вывода какой-либо команды с промежутком в несколько секунд. Для этого есть команда: