Бортовой журнал Ктулху

Программирование [страница: 2.4]

Суть проблемы: у меня есть две таблицы, в одной некоторые записи, а в другой таблице есть поля, содержащие ID записей из первой таблицы. Нужно посчитать во второй таблице сколько записей соответствует полям из первой таблицы.

Я постарался представить это на примере школы, где есть классы (первая таблица), в которых находятся ученики (вторая таблица) и нужно посчитать сколько учеников в каждом из классов.

Выходной день был немного подпорчен пришедшим в корпоративный чат сообщением о непонятной ошибке "Malformed UTF-8 characters, possibly incorrectly encoded". То есть, не то чтобы сама ошибка была непонятной, скорее причина ее происхождения.

PHP функция для проверки ИНН кода Украины.

Как сравнить две одинаковые по структуре но различающиеся по содержимому таблицы. 

Есть ассоциативный массив с условно неизвестными ключами и нужно получить первый элемент этого массива.

Подключиться к MSSQL через ODBC можно с настройкой DSN или с использованием параметров подключения а также через PDO. Будут примеры всех (или почти всех) возможных вариантов подключения.

При работе с Sybase есть несколько малоизвестных нюансов.

Так чтобы окончательно закрыть все вопросы касательно функция include и require на примерах покажу разницу в поведении этих функций.

Часто встречающаяся задача которая решается при помощи usort и пользовательской функции. Но немного интереснее становится когда нужно делать это при помощи метода класса.

Поле ввода в виде тегов, которые можно добавлять и удалять. Нет смысла подробно это описывать, кому нужно - поймет.

Хотя в сети миллионы подобных примеров, мой прост и он работает=)

Три способа обойти дочерние элементы на jQuery.

Есть несколько способов это сделать, я напишу три из них.

Шпаргалка по функциям фильтрации текста, в частности, при приеме данных для подготовки SQL-запроса но и для других целей.

Достаточно простой пример регулярного выражения, показано его устройство с пояснениями.

Небольшой скрипт на jQuery, показывающий сколько еще слов можно добавить в текстовое поле.

Простая функция на PHP для валидации разрешенных IP адресов (или запрещенных, кому как удобнее).

Http заголовки, — пожалуй, главная вещь в общении между устройствами (например, браузер - сайт). Они передают основную информацию об устанавливающемся соединении и о передаваемой информации через это соединение.

А теперь о том, как их выловить.

 

Тема, конечно, не новая, но напомнить полезно.

В Yii2 есть свой механизм конструирования SQL запросов, поэтому, стоит использовать только его и не допускать "чистых" запросов. Лучше использовать Active Record или, если не хочется городить модель, использовать CreateCommand.

Несколько простых примеров работы с датами на PHP.

При использовании ssh2_scp_send на сервер приходят обрезанные в конце файлы. Это хорошо заметно на примере текстовых и картинок (просто другие файлы могут не открыться вообще). Проблема заключается в том, что вы не закрываете сеанс SSH. Таким образом, внутренние буферы не очищаются, и файлы полностью не записываются на диск.

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

Но не все так плохо, Вордпресс можно научить работать через прокси.

Пример скрипта для скачивания больших файлов с гугл диска. Особенностью скачивания больших файлов является наличие дополнительного подтверждения для скачивания, гугл предупреждает что файл большой  уточняет, точно ли его нужно скачать.

Несколько дней назад перестала работать отправка почты PHPMailer + Gmail. Вероятно, закрутили какие-то гайки, так как до этого все работало, но это не точно, может быть, провайдер приложил руку.

В логе были ошибки ssl3_get_server_certificate:certificate verify failed.

Абсолютно одинаковые файлы вели себя по-разному а именно, один запускался а другой нет и в логах попадались ошибки: "end of script output before headers". Не помогала даже установка прав 777.

Нажимая на воспроизведение анимированого изображения на сайте (фб, твиттер, вк  т.д.) в консоли браузера можно увидеть что запускается воспроизведение видеофайла. 

Я думаю, каждый программист так или иначе сталкивается с ошибками наподобие "Fatal error: Allowed memory size of 402653184 bytes exhausted (tried to allocate 1126637679 bytes) in /var/www/html/puper-puper-script.php on line 256". Можно, конечно увеличивать количество доступной памяти для PHP, но это нельзя делать бесконечно. Но можно и попытаться разобраться на что расходуется память.

JSON - результат работы функции json_encode().  Под катом будет описан метод проверки строки, является ли она JSON или нет.

Flexbox можно назвать удачной попыткой решения огромного количества проблем при верстке, таких, например, как выравнивание блоков по вертикали. Любой верстальщик знает несколько путей выровнять что-либо по вертикали или сделать 3-х колоночный макет с резиновой средней колонкой. Но все эти способы довольно странные, похожи на хак костыли, подходят не во всех случаях, сложны для восприятия и не работают при несоблюдении определенных магических условий, которые сложились исторически и вообще, это не проще обряда вызова Сатаны.

В некоторых случаях необходимо использовать возможности модели но без использования таблиц. Самый простой пример - валидировать поля формы но без записи в базу.

Нет ничего проще!

Метод beforeAction позволяет выполнить произвольный код перед выполнением экшена, что следует из его названия. И практический пример использования.

В Yii2 есть такой функционал как сценарии которые позволяют изменять правила валидации в различных ситуациях.

Например, есть некий набор полей, который будет валидироваться в одном случае и не будет в другом. Сценарии объединяют в понятные группы правила валидации и регистрируя условного Уасю, при редактированиии нельзя будет изменить его логин и при сохранении в базу объекта "Уася" поле "Логин" не будет подвергаться валидации.

Поиск рекурсивно в многоуровневом массиве пустых значений на PHP. Функция писалась для проверки json по-быстрому.

Тернарный оператор - это такой урезанный аналог if else для двух значений. Также его удобно использовать если предварительно нужно проверить существование значения. Ниже несколько примеров использования.

Коротко об использовании сессий в Yii2. Такая шпаргалка которая всегда под руками.

В php работа с сессиями происходит через глобальный массив $_SESSION. В Yii 2 есть компонент yii\web\Session, который доступен через Yii::$app->session.

Это как и обычные сессии в PHP но с некоторыми дополнительными возможностями. 

Инструкция по добавлению мета тегов в заголовок страницы на фреймворке Yii2.

После того как сделана выборка, например, статей из, например, блога, неплохо было бы разбить вывод на страницы для снижения нагрузки на сайт.

Yii2 обладает собственным классом загрузки файлов \Yii\we\UploadedFile, который представляет файл в виде объекта для удобства дальнейшей работы. 

Примеры для выборки, обновления, записи и удаления данных в БД при помощи Active Record на Yii2.

Active Form на Yii2 используется для создания форм, как ни странно. Приведу самый простой пример, достаточный для понимания как создавать формы при помощи этого компонента.

Как сравнить между собой неизвестное количество массивов и как вывести их общие значения? Таким вопросом я задался недавно.

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

Unisender - это инструмент для массовых рассылок и отправки одиночных писем.

В этой статье я опишу как работать с ним через API и некоторые "подводные камни", с которыми пришлось столкнуться.

REST или в полной форме, Representational State Transfer стало стандартной архитектурой проектирования для разработки веб-API. 

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

Однажды мне понадобилось в методе возвращать объект в качестве негативного результата, например вместо false. Это было необходимо для совместимости с существующим кодом. Ранее этот метод возвращал объект с результатом, но после корректировок он не всегда возвращал результат обработки.

Используя готовые и проверенные решения можно сильно сэкономить время, которое обычно уходит на создание собственных реализаций того что уже давно сделали другие. Я нашел несколько готовых библиотек, которые будут экономить время мне и всем кто не поленится и прочитает статью.

Самый, наверное, примитивный способ как можно привести номера телефонов к единому формату если, допустим, есть какой-то массив номеров телефонов, которые нужно записать в базу.

Сделал такую заготовку под класс для записи чего-либо в текстовые файлы.

 

В интернете масса статей по созданию блога на Yii2 и я добавлю еще одну. Моя статья выгодно отличается от других тем, что лично для меня она построена на моем же опыте работы с Yii2. Всем прочим - на собственное усмотрение.

Делал для себя заметки по Yii2 когда разбирался с созданием блога, установкой и так далее. Данная статья написана на основе собственного опыта и информации из сети. Пошагово расписано создание блога и некоторые мелочи, все по собственному опыту.

 

После создания сайта на ModX нужно было включить ЧПУ, так как без него не комильфо. Далее простая инструкция как это сделать.

Пример создания класса для работы с базой данных с использованием шаблона проектирования singleton. Пример упрощенный, много кода придется писать под свои задачи, но его достаточно для понимания как это работает.

PHP функция для изменения размера base64 кодированного изображения.