Искажение символов на PHP-сайте

В одном из проектов пришлось столкнуться со следующей задачей: в конце строки использовался символ кириллицы русская буква «г» с предшествующим пробелом. Нужно было скриптом удалить ее.

Попробовал использовать следующий код:

$stroka=trim($stroka,’ г’);

Все прекрасно работало, пока сайт не переехал на кодировку UTF-8 (ранее использовалась Windows-1251)

После смены кодировки выяснилась одна особенность работы функции trim в php: эта функция не поддерживает кодировку и просто просматривает отдельные байты. Если отправлять вторым аргументом символы кириллицы закодированной в UTF-8, то в строке будут искаться байты в соответствии с кодировкой, с чем trim справляется не совсем корректно, попутно удаляя лишние байты, приводя к искажению некоторых символов на сайте, например, в рассматриваемом случае всегда происходило искажение первого символа в строке и вместо него выводился символ �.

Результат поисков решения привел к отказу от использования функции trim, благо, функционал php довольно разнообразен. Рассмотрев варианты было принято решение использовать замену регулярными выражениями:

$stroka=preg_replace('/ г$/u', '',$stroka']);
Code language: PHP (php)

После проведенной замены искажение символов перестало происходить.

После установки системы управления версиями git запускаем консоль. Сразу же выполним первую команду.

$ git config —list —show-origin

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

Результат выполнения команды $ git config —list —show-origin

Одним из первых шагов рекомендуется задать имя пользователя и адрес электронной почты используя соответствующие команды

$ git config —global user.name «John Doe»

$ git config —global user.email johndoe@example.com

Увидеть текущие настроки можно выполнив команду

$ git config —list

Просмотр текущих настроек git

Для создания репозитория необходимо перейти в git-консоли в каталог, в котором будет размещен репозиторий и выполнить команду git init.

Создание репозитория git

В нашем случае будет использоваться удаленный репозиторий. Получим данные из него

Установка Notepad++

Для установки текстового редактора Notepad++ переходим на официальный сайт и скачиваем дистрибутив в разделе Downloads требуемую версию редактора. Выбираем самую свежую версию (на момент написания это версия 8.5.4, размер установщика 4.4Мб).

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

Выбор языка интерфейса

Непосредственно процесс установки начинается с окна приветствия мастера.

Окно приветствия мастера установки  Notepad++

Привычные шаги установки с отображением лицензионного соглашения и выбора пути установки програмы

Лицензионное соглашение
Выбор папки установки Notepad++

После прохождения подготовительных этапов мастера предлагается выбрать компоненты программы.

На завершающем этапе перед установки программы можно выбрать опцию Создать ярлык на рабочем столе

Завершающий шаг мастера установки  Notepad++

После нажатия на кнопку Установить процесс установки проходит почти моментально и появляется окно, оповещающее о завершении процесса установки Notepad++.

Завершение установки Notepad++

Оставляем выделенным чекбокс Запусить Notepad++ v8.5.4 и нажимаем Готово, после чего произойдет первый запуск программы.

На этом установка текстового редактора с подсветкой синтаксиса Notepad++ завершена.

Установка git на Windows 10

Распределённая система управления версиями git широко применяется при разработке сайтов.

Рассмотрим процесс установки git на Windows. Первым делом скачиваем дистрибутив с официального сайта https://git-scm.com/download/win. Выбираем вариант скачивания 64-bit Git for Windows Setup. На момент установки самая свежая версия 2.41.0. Размер файла установщика около 60Мб.

Скачиваем git с официального сайта.

Традиционно на первом шаге предлагается ознакомиться с лицензионным соглашением.

Лицензионное соглашение git

Второй шаг установщика тоже привычен и предлагает выбрать путь для установки программы. Оставляем значение по умолчанию.

Путь установки git

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

Компоненты git

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

Расположение ярлыков git

Более важным шагом является выбор текстового редактора, используемого по умолчанию. Выберем редактор Notepad++. Предварительно перед началом работы мастера необходимо установить редактор Notepad++.

Выбор текстового редактора по умолчанию для git

Далее выбираем имя начальной ветки git.

Выбор имени начальной ветки git

Выбор режима окружения

Выбор режима окружения
Установка git
Завершение мастера установки git

Первый запуск git

Первый запуск git

Выполним первую команду git чтобы посмотреть все установленные настройки и узнать где именно они заданы, используя команду:

$ git config —list —show-origin

Выполнение команды: git config --list --show-origin

Яндекс реклама на сайте WordPress

Как заработать на сайте, созданном на системе управления контентом WordPress? Таким вопросом часто задаются вебмастеры. Причины, по которым у администраторов сайтов возникает необходимость получения дохода с веб-ресурсов могут быть различными. Их мы сейчас не рассматриваем.

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

Одним из сервисов, продающих рекламу на сайтах, стала рекламная сеть Яндекса. Для получения заработка от показа рекламных объявлений на сайте необходима регистрация в партнерской сети. После регистрации нужно будет добавить площадку в партнерском интерфейсе. После прохождения модерации в инструментах площадки появится возможность создавать рекламные блоки.

Рассмотрим процесс публикации рекламных объявлений на сайте с использованием Рекомендательного виджета. В партнерском интерфейсе рекламной сети Яндекс откроем пункт меню Реклама на сайтах и в раскрывшемся подменю кликнем «Рекомендательный виджет»

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

Выдрав площадку и название виджета перейдем на следующий шаг

На следующем шаге настраиваем дизайн виджет

На последнем шаге мастера создания рекламного виджета определяем Порог СРМ.

По завершению система выдаст соответствующее уведомление

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

Нажав кнопку Получить код откроем окно с кодом виджета, который нужно вставить на сайте

Первая часть кода вставляется внутри секции head. Сделать это можно в Редакторе тем WordPress.

Со второй частью кода немного сложнее. Поскольку вторая часть вставляется непосредственно в контент сайта, может оказаться так, что рекламный виджет «поломает» дизайн сайта. Можно воспользоваться виджетами WordPress. Однако такой способ не всегда подходит.

Справочники по языку программированию Python

Python — это современный язык программирования, работающий на всех распространённых операционных системах.

Python – это универсальный современный язык программирования высокого уровня, к преимуществам которого относят высокую производительность программных решений и структурированный, хорошо читаемый код.  Синтаксис Питона максимально облегчен, что позволяет выучить его за сравнительно короткое время. Ядро имеет очень удобную структуру, а широкий перечень встроенных библиотек позволяет применять внушительный набор полезных функций и возможностей. Python может использоваться для написания прикладных приложений, а также разработки WEB-сервисов.

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

Один из самых популярных интерпретаторов языка –  CPython. Распространяется эта среда разработки бесплатно по свободной лицензии. Интерпретатор поддерживает большинство популярных платформ.

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

Python – не самый «молодой» язык программирования, но и не слишком старый. К моменту его создания уже существовали такие языки программирования, как Паскаль или Си. А потому при создании языков программирования авторы старались взять лучшее из различных платформ для разработчиков. Фактически Python представляет из себя своеобразный «джем» удачных решений более чем из 8 различных языков. К примеру, байт компиляция появилась еще до создания Питона, но была очень удачна в него интегрирована.

ЯП имеет четко структурированное семантическое ядро и достаточно простой синтаксис. Все, что пишется на этом языке, всегда легко читаемо. В случае необходимости передать аргументы язык использует функцию call-by-sharing.

Набор операторов в языке вполне стандартен. Удобная особенность синтаксиса – это форматирование текста кода при помощи разбивки их на блоки с помощью отступов, которые создают нажатием клавиш «Space» и «Tab». В синтаксисе отсутствуют фигурные или операторные скобки, обозначающие начало и конец блока. Такое решение заметно сокращает количество строк тела программы и приучает программиста соблюдать хороший стиль и аккуратность при написании кода.

В 2018 году в Python были изменены некоторые ключевые термины, но это скорее упростило понимание. А потому проблем у разработчиков при изучении документации не возникает.

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

Базовые команды Python

Запустить интерпретатор python можно из командной строки:

python

pip

Менеджер пакетов Python. Команда pip install используется для установки любого программного пакета из онлайн-репозитория общедоступных пакетов или Индекса пакетов Python (PyPI, Python Package Index).

pip install имя-пакета

print

Команда для печати сообщений на экране или другом стандартном устройстве вывода. Команда print может использоваться для печати любого типа объекта — целого числа, строки, списка, кортежа и других.

print
Code language: PHP (php)

class

Команда для создания классов. Python поддерживает объектно-ориентированное программирование и позволяет пользователям создавать классы и инициализировать объекты. Класс может состоять из переменных с модификаторами доступа, функций с возвращаемыми типами и даже других классов (вложенный класс). Синтаксис выглядит class так:

class ИмяКласса: код_тела_класса

Пример кода ниже продемонстрирует применение class при создании класса «student»:

«student»: class student: name = "" def setName(self, passedValue): self.name = passedValue def displayName(self): print(self.name)

Чтобы использовать класс в Python, необходимо сначала создать его экземпляр, называемый объектом. Для этого нужно вызвать класс по имени следующим образом:

ИмяКласса()

Как видно из приведенного выше синтаксиса, при создании объекта в Python, после имени класса всегда ставятся круглые скобки. Обычно для удобства поиска вновь созданный объект тут же привязывается к переменной, через которую к нему в дальнейшем и обращаются:

имя_переменной = ИмяКласса()

Пример создания объекта для класса «student»:

mystudent = student() mystudent.setName("Denis Tselishev") mystudent.displayName()
Code language: JavaScript (javascript)

В результате мы получим вывод:

Denis Tselishev

Как и в других языках программирования, в Python также можно реализовать конструкторы и статические методы в классах, используя соответственно метод dunder init() и декоратор @staticmethod.

type

Команда для проверки типа или класса объекта.

type(объект)

range

Команда для генерации последовательности целых чисел, начиная с 0 по умолчанию и заканчивая n, где n не включено в сгенерированные числа. Эта команда в основном используется в циклах for.

range(start, stop, step)

round

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

round(number, digits)

В приведенном синтаксисе:

  • number — число с плавающей запятой;
  • digits — количество цифр после десятичной точки (опционально; по умолчанию — 0).

input

Команда для получения ввода от пользователя. Исполнение программы будет остановлено до тех пор, пока пользователь не введет какое-либо значение, которое будет преобразовано функцией input() в строку. Если в качестве входных данных нужно взять целое число, его нужно преобразовать явно.

input(message)

В приведенном синтаксисе: message — текст, который нужно отобразить пользователю (опционально).

def

Команда определения функции Python дает возможность оборачивать повторно используемый код внутри функций, чтобы вызваны его позже, когда это необходимо. Функция def позволяет свести к минимуму избыточность кода.

def имя_функциинкции(параметры: """строка документации""" состояние(я
Code language: JavaScript (javascript)

len

Команда len или функция len() используются для подсчёта количества элементов в объекте. Если объект является строкой, то функция len() возвращает количество присутствующих в ней символов. Если объект представляет собой список или кортеж, он вернет количество элементов, присутствующих в этом списке или кортеже. При попытке передать len() целочисленное значение, функция выдает ошибку.

len(object)

В приведенном синтаксисе: object — объект, длину которого необходимо найти (обязательно).

Циклические команды

В Python есть две простейшие команды цикла (loop commands) — while и for. Команда while используется для выполнения набора операторов, если заданное условие истинно.

while condition: statements update iterator
Code language: JavaScript (javascript)

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

for x in sequence: statements

Заключение

Python — это высокоуровневый язык, который можно применять и для создания прикладных программ, и для WEB разработки. Производительность платформы весьма высока, код отличается простой и читабельностью.

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

Краткий перечень возможностей:

  • Любой описанный класс единовременно представляет из себя и объект.
  • Функция множественного наследования.
  • Поддержка виртуальных функций.
  • Возможность легко управлять именами скрывать их особыми метками.
  • Возможность жизнью объекта и распределение памяти.
  • Управление работы операторов как символьных, так и логических.
  • Возможность имитировать поле
  • Управление полями – как прямой, так и частичный доступ.
  • Контроль над самыми распространенными операциями. От глубокого до итерации по объекту.
  • Возможно создавать триггеры и классы.

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

Плагин редактирования изображений

На проекте specengine.ru потребовалось установить он-лайн редактор изображений из фотогалереи WordPress. Главная задача которую нужно решить — ретуширование номеров автомобилей на фотографиях. После входа в админ-панели и перехода на страничку добавления новых плагинов в строке поиска ввели paint. Первый в списке WP Paint. Будем устанавливать его.

Добавление плагина WP Paint

После установки активируем плагин, и на странице медиагалереи WordPress при выборе Изображения появляется ссылка Edit image using WP Paint.

Переходим по ссылке и попадаем в редактор

Из инструментов позволяющих ретушировать номер наиболее пригодным видится карандаш. Не очень удобно.

Создание записи на warmotor.ru

Войдите под своими учетными данными на warmotor.ru. Выберите пункт меню «Добавить запись».

Добавить запись

В панели «Настройка записи» нужно выполнить несколько действий:

  • добавляем «Отрывок» — небольшое описание изделия. Отрывок должен занимать 3 строчки на странице записей.

  • добавляем «Рубрику»
  • добавляем изображение записи. Исходный размер изображения не должен быть меньше 2000 пикселей по ширине. Пропорции изображения должны быть 16:9.

При вставке изображения нужно указывать текстовые данные файла:

Добавьте характеристики объекта. Характеристики должны быть оформлены таблицей а не рисунком.

Строка оглавляющая характеристики должна быть заголовком второго уровня

Создание Telrgram-бота

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

Для создания бота воспользуемся ботом  @BotFather 

Бот @BotFather для создания бота Telegram
Бот @BotFather для создания бота Telegram

Нажимаем старт и получаем ответ:

Первый шаг создания бота Telegramm
Первый ответ бота создания бота

Будем создавать бота по расчету IP-адресов.

Нажимаем /newbot, появляется сообщение с предложением ввести имя бота пробуем ipAddrCalc.

В ответ приходит сообщение «Good. Now let’s choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.»

На этом шаге нужно ввести имя аккаунта, которое будет у отображаться у бота.

Задание имени бота

Используем calc_bot, однако, получаем ответ, что такое имя уже используется, необходимо указать другое. Будем использовать ipAddrCalc_bot

Получение токена бота

По сообщению понимаем, что новый бот создан и доступен по ссылке: http://t.me/ipAddrCalc_bot

В этом же ответе указан токен для доступа к HTTP API (на скриншоте он закрашен красненьким).

Токен можно проверить перейдя по ссылке: https://api.telegram.org/bot<token>/getMe конечно, не забываем изменить <token> на реальный токен, полученный на этапе создания бота.

в ответ должно прийти что-то похожее:

{"ok":true,"result":{"id":*********,"is_bot":true,"first_name":"ipAddrCalc","username":"ipAddrCalc_bot","can_join_groups":true,"can_read_all_group_messages":false,"supports_inline_queries":false}}

Для работы с HTTP API будем использовать хостинг с PHP.

I can help you create and manage Telegram bots. If you’re new to the Bot API, please see the manual.

You can control me by sending these commands:

/newbot — create a new bot
/mybots — edit your bots [beta]

Edit Bots
/setname — change a bot’s name
/setdescription — change bot description
/setabouttext — change bot about info
/setuserpic — change bot profile photo
/setcommands — change the list of commands
/deletebot — delete a bot

Bot Settings
/token — generate authorization token
/revoke — revoke bot access token
/setinline — toggle inline mode
/setinlinegeo — toggle inline location requests
/setinlinefeedback — change inline feedback settings
/setjoingroups — can your bot be added to groups?
/setprivacy — toggle privacy mode in groups

Games
/mygames — edit your games[beta]
/newgame — create a new game
/listgames — get a list of your games
/editgame — edit a game
/deletegame — delete an existing game

Следующим шагом настройки бота будет установка вебхука. Файл по указанному URL будет отвечать за обработку взаимодействия с ботом. Настроить вебхук можно используя обычный браузер. Достаточно перейти по адресу https://api.telegram.org/<token>/setwebhook?url=<url>. Важный момент: вебхук должен работать по защищенному протоколу https.

Регистрация вебхука
Регистрация вебхука

Если в результате выполнения вернется JSON содержащий

{«ok»:true,»result»:true,»description»:»Webhook was set»}

значит все прошло успешно, и бот готов к работе.

Далее займемся созданием обработчика.

Войти

Зарегистрироваться

Сбросить пароль

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