Destio

PHP

Скрыть категорию из “Свежие записи” в WordPress

Что скрыть категорию (рубрику) в виджете “Свежие записи”, надо добавить следующую функцию в functions.php (если тема не будет обновляться). function filterCategory($categories) { $categories[“cat”] = “-346”; return $categories; } add_filter(“widget_posts_args”, “filterCategory”); ID нужной категории можно найти в адресе страницы категории, будет в виде term.php?taxonomy=category&tag_ID=210. И ее с “-” впереди добавить. Наверное будет работать если сразу несколько, […]

Читать дальше

Критичные ошибки в PHP, fatal errors

PHP Fatal error: Cannot redeclare class Это значит данный класс уже объявлялся ранее. Самое простое это включать файлы с классами как include_once()/require_once(). Если не помогает, то можно проверять наличие класса: if (class_exists(“Database”) == false) { class Database { … } }

Читать дальше

,

PHP Parse error

Тут буду собирать php parsing errors. syntax error, unexpected '' PHP Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) Это значит PHP не нравится интерполировать элементы массива с ключами в одиночных кавычках. $foo = “upupu $issue[‘article’]” // плохо $foo = “upupu {$issue[‘article’]}” // хорошо

Читать дальше

,

Перенаправления в PHP

Всякие 301 редиректы лучше редиректить через .htaccess, оно так эффективнее. Но если надо перенаправить в PHP, то это вроде несложно: header(“Location: /foo/tuda/”); exit; Редиректы на 404 немного по-другому: header(“HTTP/1.1 404 Not Found”); include(“/404.php”); exit; exit нужен, без него выходит какое-то дерьмо.

Читать дальше

Строгий режим в PHP, PHP Notice

error_reporting(-1); позволяет PHP писать в лог о всех мелочах, наподобие аналогичным use warnings; или “use strict”;. Вот какие сообщения я уже получал: PHP Notice: Use of undefined constant Так ПХП требует кавычки вокруг ключей в ассоциативных массивах. Ключ это строка, а строки должны быть в кавычках: $_GET[n]; // плохо $_GET[“n”]; // хорошо PHP Notice: Undefined […]

Читать дальше

,

Простое ведение логов в PHP

Чтобы не сильно заморачиваясь вести логи каких-нибудь событий, часто хватает простого error_log(). И не нужно морочиться с записью в файлы и базы данных. Формат очень свободный, поэтому даты и переносов строк не будет, все самому. error_log(date(“c”) . ” cookies eggog\n”, 3, “/var/dataLogs/loginLog.log”); Файл создастся сам. Также можно писать и в общий error_log, с параметром 0: […]

Читать дальше

PDO prepated statements и кириллица

Как-то я бугнул и в названии колонки таблицы в MySQL (на самом деле Percona Server) появилась буква с. Буква кириллицей, из названия колонки расплодилась в соответствующие переменные PHP и параметры PDO (копипаста вперде!). Все участники спокойно пережевывали слово Сorrelation, пока execute() не порадовал меня ошибкой в параметре: PHP Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter […]

Читать дальше

, ,

Включить HTML файл в HTML файл

Напрямую инклюдить HTML в HTML нельзя. Возможно в полуреализованных спецификациях уже есть различные наработки на эту тему, однако они с заморочками и результат скорее походит на страницу внутри страницы. А гладкое бесшовное включение, как какой-нибудь include или require нам в чистом HTML не получить. PHP include требует расширения .php и все равно чистый HTML инклюдить […]

Читать дальше

Invalid argument supplied for foreach()

Когда пхп кормят данными сомнительной чистоты и они проходят через какой-нибудь foreach внутри, то логи пхп заполняются предупреждениями следующего вида: PHP Warning: Invalid argument supplied for foreach() in /script.php on line 146 Если нет возможности убедиться что во входящих данных будет действительно array, то для очистки лога и душевного спокойствия можно заворачивать foreach в условие […]

Читать дальше

,

Пример использования PHPMailer для Яндекс-почты

Я правда не помню, как его устанавливать, но как-то нетривиально, напишу потом. Вот пример конфигурации PHPMailer, которая может посылать письма с почты Яндекса (почта для домена), аутентифицируясь по SMTP (не знаю, можно ли еще как-нибудь). $mail = new PHPMailer; $mail->CharSet = ‘UTF-8’; // $mail->SMTPDebug = 1; // Если что-то не работает $mail->isSMTP(); $mail->Host = ‘smtp.yandex.com’; […]

Читать дальше

, , ,

Записки постарше

Сервера DELL и HP: лучшие цены и широкий выбор