Как узнать что работает на сервере Nginx или Apache

Проверить, что работает на сервере, можно при помощи функции get_headers(), что возвращает заголовки, например:
    [0] => HTTP/1.1 200 OK
    [1] => Server: nginx/1.26.2
    [2] => Date: Wed, 19 Feb 2025 13:07:34 GMT
    [3] => Content-Type: text/html; charset=utf-8
    [4] => Transfer-Encoding: chunked
    [5] => Connection: close
    // Другие заголовки

Строка: Server: nginx/1.26.2: говорит о том, что работает сервер Nginx.

Делать можно так:
print_r(get_headers('pageURL'));
...

Uncaught mysqli_sql_exception: Data too long for column

Получил ошибку: Uncaught mysqli_sql_exception: Data too long for column. Из текста ошибки ясно, что машина получила слишком длинные данные.

Я не стал менять тип поля, чтобы увеличить её ёмкость, я просто сделал проверку на длину строки, перед сохранением данных в Базу Данных (По аналогии: Тема: Слишком большое имя (failed to open stream: File name too long)).

Делаю так:
$insert['search_query'] = (mb_strlen($search) > 250) ? mb_substr($search, 0, 250) : $search;

Готово. Ошибка исчезла.

Строка нужна для одногоразового поиска, и длиннее чем 250 символов, она ни к чему. Поэтому, в моём случае, удаление части строки допустимо. Если это не Ваш случай, рассмотрите вариант с увеличением ёмкости поля, куда сохраняется запись, либо замену типа столбца....

Магический метод __call(): Вызов при недоступных методов

PHP
Магический метод __call() запускается при попытке обращения к несуществующему/недоступному методу:
	public function __call($name, $arguments)
	{
		echo 'Метод: ' . $name . ' не найден.';
	}

Мои два метода (installation и update) были похоже друг с другом, за исключением деталей, я решил их объединить, в один, при этом обращение к методам должно было остаться прежним:
$class->installation();
$class->update();

С решением этой задачи мне помог магический метод __call():
	// Установка | Обновление
	public function __call(string $name, array $arguments)
	{
		// Проверка: Если вызываемый метод не: installation, или не: update, то функция вернёт null 
		if (!in_array($name, ['installation', 'update']))
		{
			return null;
		}

		// Код функции
	} // End: Установка | Обновление
...

PHP: Цикл в две колонки | В два столбика

Работая над одним приложением, потребовалось перечислить элементы массива в две колонки (Столбика):



Для решения этой задачи, у меня было два варианта. Первый:
		<?php foreach ($characteristics as $characteristic): ?>
		<div class="feature">
			<?php echo $this->lang()->phrase($characteristic['name']); ?>: <strong><?php echo $characteristic['info']; ?></strong>
		</div>
		<?php endforeach; ?>

И CSS к шаблону:
.feature {
	display: inline-block;
	width: 48%;
}

И второй:
		<?php foreach ($characteristics as $key => $characteristic): ?>
		<?php if ($key % 2): ?>
		<div style="float: right;">
		<?php else: ?>
		<div style="float: left;">
		<?php endif; ?>
			<?php echo $this->lang()->phrase($characteristic['name']); ?>: <strong><?php echo $characteristic['info']; ?></strong>
		</div>
		<?php endforeach; ?>

Я выбрал первый вариант. Он мне показался лучшем, чем второй....

PHP: Дробное число без округления

PHP
В PHP есть функции: round | ceil | floor, которые округляют дробные числа, в большую или меньшую сторону, в зависимости от функции и самого числа. Удобно, да не всегда...

Бывает появляется необходимость работать с дробями, но не округляя их, а оставляя так, как есть. Нашёл такое решение:
$n = bcdiv('1762.789', 1, 2); // 1762.78

Кстати: Блог: Call to undefined function bcdiv().

Ещё вариант:
$n = floor(12.399 * 100) / 100; // 12.39
...