HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Определение</a></li>
1 <ul><li><a>Определение</a></li>
2 <li><a>Историческая справка</a></li>
2 <li><a>Историческая справка</a></li>
3 <li><a>Свойства</a></li>
3 <li><a>Свойства</a></li>
4 <li><a>Ключевые возможности</a></li>
4 <li><a>Ключевые возможности</a></li>
5 <li><a>Отличия от других языков</a></li>
5 <li><a>Отличия от других языков</a></li>
6 <li><a>Принцип работы технологии на сервере</a></li>
6 <li><a>Принцип работы технологии на сервере</a></li>
7 <li><a>Версии и их особенности</a></li>
7 <li><a>Версии и их особенности</a></li>
8 <li><a>Преимущества и недостатки</a></li>
8 <li><a>Преимущества и недостатки</a></li>
9 </ul><p>Программирование может осуществляться при помощи различных языков разработки. Некоторые из них являются универсальными и подходят для любых операционных систем и задач, а какие-то выступают узкоспециализированными. Второй тип языков программирования используется для решения определенных проблем, а также может ориентироваться на строго определенные платформы.</p>
9 </ul><p>Программирование может осуществляться при помощи различных языков разработки. Некоторые из них являются универсальными и подходят для любых операционных систем и задач, а какие-то выступают узкоспециализированными. Второй тип языков программирования используется для решения определенных проблем, а также может ориентироваться на строго определенные платформы.</p>
10 <p>Для написания веб-сервисов и сайтов могут использоваться скриптовые инструменты разработки. Одним из них является язык программирования the PHP. Далее предстоит познакомиться с ним поближе. Необходимо выяснить, что это за инструмент программирования, для чего он используется, какими особенностями обладает. Соответствующая информация пригодится и программистам-новичкам, и уже более опытным разработчикам. Она поможет понять, стоит ли вообще начинать изучение PHP в том или ином случае.</p>
10 <p>Для написания веб-сервисов и сайтов могут использоваться скриптовые инструменты разработки. Одним из них является язык программирования the PHP. Далее предстоит познакомиться с ним поближе. Необходимо выяснить, что это за инструмент программирования, для чего он используется, какими особенностями обладает. Соответствующая информация пригодится и программистам-новичкам, и уже более опытным разработчикам. Она поможет понять, стоит ли вообще начинать изучение PHP в том или ином случае.</p>
11 <h2>Определение</h2>
11 <h2>Определение</h2>
12 <p>The PHP (Hypertext Preprocessor) - это препроцессор гипертекста. Серверный язык разработки, который легко изучать. The PHP является скриптовым и интерпретируемым средством программирования.</p>
12 <p>The PHP (Hypertext Preprocessor) - это препроцессор гипертекста. Серверный язык разработки, который легко изучать. The PHP является скриптовым и интерпретируемым средством программирования.</p>
13 <p>Данный инструмент имеет открытый исходный код. Изначально он создавался только для создания веб-сайтов и онлайн-приложений, но за счет своих многочисленных обновлений начал использоваться как язык общего назначения. Чаще всего the PHP встречается в веб-разработке.</p>
13 <p>Данный инструмент имеет открытый исходный код. Изначально он создавался только для создания веб-сайтов и онлайн-приложений, но за счет своих многочисленных обновлений начал использоваться как язык общего назначения. Чаще всего the PHP встречается в веб-разработке.</p>
14 <p>Сейчас the PHP и его интерпретатор Zend Engine разрабатывается группой свободных разработчиков (энтузиастов). Распространяется этот проект под собственной лицензией, которая не поддерживает совместимость с GNU GPL.</p>
14 <p>Сейчас the PHP и его интерпретатор Zend Engine разрабатывается группой свободных разработчиков (энтузиастов). Распространяется этот проект под собственной лицензией, которая не поддерживает совместимость с GNU GPL.</p>
15 <h2>Историческая справка</h2>
15 <h2>Историческая справка</h2>
16 <p>The PHP - это скриптовый инструмент программирования. Он был создан Расмусом Лердорфом в 1995 году. Изначально the PHP выступал в качестве средства для создания интерактивных и динамических веб-страниц.</p>
16 <p>The PHP - это скриптовый инструмент программирования. Он был создан Расмусом Лердорфом в 1995 году. Изначально the PHP выступал в качестве средства для создания интерактивных и динамических веб-страниц.</p>
17 <p>Расшифровка the PHP - это "Hypertext Preprocessor" или "гипертекстовый предобработчик". На данный момент этот инструмент активно используется веб-программистами при написании различных сайтов и веб-приложений. Он встречается у большинства онлайн-сервисов.</p>
17 <p>Расшифровка the PHP - это "Hypertext Preprocessor" или "гипертекстовый предобработчик". На данный момент этот инструмент активно используется веб-программистами при написании различных сайтов и веб-приложений. Он встречается у большинства онлайн-сервисов.</p>
18 <p>Применяется the PHP в самых разных целях:</p>
18 <p>Применяется the PHP в самых разных целях:</p>
19 <ul><li>создание скриптов, работающих на серверной стороне клиент-серверных моделей;</li>
19 <ul><li>создание скриптов, работающих на серверной стороне клиент-серверных моделей;</li>
20 <li>написание скриптов командной строки и GUI-приложений;</li>
20 <li>написание скриптов командной строки и GUI-приложений;</li>
21 <li>написание динамических веб-страниц.</li>
21 <li>написание динамических веб-страниц.</li>
22 </ul><p>The PHP - язык программирования, который встречается в проектах самых разных масштабов: от браузерных игр до социальных сетей и крупных веб-программ вроде "Вконтакте" до систем управления контентом (CMS).</p>
22 </ul><p>The PHP - язык программирования, который встречается в проектах самых разных масштабов: от браузерных игр до социальных сетей и крупных веб-программ вроде "Вконтакте" до систем управления контентом (CMS).</p>
23 <p>The PHP может использоваться для разработки различных фреймворков для создания веб-страниц. Он уже применялся при создании Symfony, Laravel и Yii2.</p>
23 <p>The PHP может использоваться для разработки различных фреймворков для создания веб-страниц. Он уже применялся при создании Symfony, Laravel и Yii2.</p>
24 <p>PHP.net - официальный сайт веб-языка the PHP. Он широко используется при написании онлайн-сервисов и различных сайтов. Данный портал предоставляет:</p>
24 <p>PHP.net - официальный сайт веб-языка the PHP. Он широко используется при написании онлайн-сервисов и различных сайтов. Данный портал предоставляет:</p>
25 <ul><li>обширную документацию, помогающую быстрее освоить инструмент разработки;</li>
25 <ul><li>обширную документацию, помогающую быстрее освоить инструмент разработки;</li>
26 <li>различные ресурсы для программирования;</li>
26 <li>различные ресурсы для программирования;</li>
27 <li>официальную документацию к the PHP;</li>
27 <li>официальную документацию к the PHP;</li>
28 <li>информацию о рассматриваемом языке;</li>
28 <li>информацию о рассматриваемом языке;</li>
29 <li>загрузки последний версий;</li>
29 <li>загрузки последний версий;</li>
30 <li>новости, связанные с изучаемым инструментом программирования;</li>
30 <li>новости, связанные с изучаемым инструментом программирования;</li>
31 <li>форумы для обсуждения возникающих у разработчиков вопросов.</li>
31 <li>форумы для обсуждения возникающих у разработчиков вопросов.</li>
32 </ul><p>Также у PHP.net имеется собственное сообщество пользователей и разработчиков. Там обычно обсуждаются вопросы, связанные с проблемами в процессе разработки приложений и сайтов на рассматриваемом языке.</p>
32 </ul><p>Также у PHP.net имеется собственное сообщество пользователей и разработчиков. Там обычно обсуждаются вопросы, связанные с проблемами в процессе разработки приложений и сайтов на рассматриваемом языке.</p>
33 <h2>Свойства</h2>
33 <h2>Свойства</h2>
34 <p>PHP простыми словами - это скриптовый язык для создания веб-страниц и онлайн-приложений. Он предусматривает динамическую типизацию. Это значит, что переменная не будет определяться заблаговременно и жестко.</p>
34 <p>PHP простыми словами - это скриптовый язык для создания веб-страниц и онлайн-приложений. Он предусматривает динамическую типизацию. Это значит, что переменная не будет определяться заблаговременно и жестко.</p>
35 <p>Динамическая типизация позволяет присваивать одной и той же переменной несколько значений. Она может выступать в качестве:</p>
35 <p>Динамическая типизация позволяет присваивать одной и той же переменной несколько значений. Она может выступать в качестве:</p>
36 <ul><li>строки;</li>
36 <ul><li>строки;</li>
37 <li>массива;</li>
37 <li>массива;</li>
38 <li>числа;</li>
38 <li>числа;</li>
39 <li>объекта и других элементов кода.</li>
39 <li>объекта и других элементов кода.</li>
40 </ul><p>Такой подход обеспечивает удобство разработки и гибкость приложений, но приводит к потреблению исходным проектом большего количества оперативной памяти. Как следствие - скорость работы сервиса/сайта снижается.</p>
40 </ul><p>Такой подход обеспечивает удобство разработки и гибкость приложений, но приводит к потреблению исходным проектом большего количества оперативной памяти. Как следствие - скорость работы сервиса/сайта снижается.</p>
41 <p>The PHP - это еще и интерпретируемый инструмент. Это значит, что код, написанный при помощи соответствующего языка, не будет компилироваться (преобразовываться в машинный код). Вместо этого он выполняется построчно и последовательно, используя программу-интерпретатор. Она считывает каждую написанную строчку и выполняет соответствующие команды.</p>
41 <p>The PHP - это еще и интерпретируемый инструмент. Это значит, что код, написанный при помощи соответствующего языка, не будет компилироваться (преобразовываться в машинный код). Вместо этого он выполняется построчно и последовательно, используя программу-интерпретатор. Она считывает каждую написанную строчку и выполняет соответствующие команды.</p>
42 <h2>Ключевые возможности</h2>
42 <h2>Ключевые возможности</h2>
43 <p>Рассматриваемый инструмент программирования является функциональным и удобным. Он имеет множество возможностей. Основными можно считать следующие особенности:</p>
43 <p>Рассматриваемый инструмент программирования является функциональным и удобным. Он имеет множество возможностей. Основными можно считать следующие особенности:</p>
44 <ol><li>Создание динамических веб-страниц. Рассматриваемый язык дает возможность создания динамических веб-сайтов, которые смогут без проблем адаптироваться под пользовательский ввод. Они также предоставляют интерактивные функции.</li>
44 <ol><li>Создание динамических веб-страниц. Рассматриваемый язык дает возможность создания динамических веб-сайтов, которые смогут без проблем адаптироваться под пользовательский ввод. Они также предоставляют интерактивные функции.</li>
45 <li>Обработка форм. The PHP поддерживает отличную интеграцию с HTML-формами. Это делает рассматриваемый инструмент идеальным для обработки информации, отправляемой через веб-страницы.</li>
45 <li>Обработка форм. The PHP поддерживает отличную интеграцию с HTML-формами. Это делает рассматриваемый инструмент идеальным для обработки информации, отправляемой через веб-страницы.</li>
46 <li>Возможность работы с базами данных. Рассматриваемый скриптовый язык обладает хорошей поддержкой различных систем управления базами данных (SQLite, PostgreSQL, MySQL и других). Эта особенность делает язык идеальным для создания веб-программ с информационными базами.</li>
46 <li>Возможность работы с базами данных. Рассматриваемый скриптовый язык обладает хорошей поддержкой различных систем управления базами данных (SQLite, PostgreSQL, MySQL и других). Эта особенность делает язык идеальным для создания веб-программ с информационными базами.</li>
47 <li>Поддержка работы с файлами. У рассматриваемого скриптового языка есть функции для чтения, записи и обработки файлов на серверной стороне. Данная особенность будет удобна при управлении содержимым сайта.</li>
47 <li>Поддержка работы с файлами. У рассматриваемого скриптового языка есть функции для чтения, записи и обработки файлов на серверной стороне. Данная особенность будет удобна при управлении содержимым сайта.</li>
48 <li>Возможность создания сессий. Сюда же относится управление ими. The PHP может использоваться для отслеживания состояний пользователей между выполняемыми запросами.</li>
48 <li>Возможность создания сессий. Сюда же относится управление ими. The PHP может использоваться для отслеживания состояний пользователей между выполняемыми запросами.</li>
49 <li>Работа с изображениями. С помощью рассматриваемого инструмента получится изменять размеры картинок, корректировать форматы и выполнять иные операции над графикой.</li>
49 <li>Работа с изображениями. С помощью рассматриваемого инструмента получится изменять размеры картинок, корректировать форматы и выполнять иные операции над графикой.</li>
50 <li>Возможность создания API.</li>
50 <li>Возможность создания API.</li>
51 <li>Интеграция с другими технологиями. Изучаемый скриптовый язык интегрируется с другими технологиями вроде HTML, CSS и JavaScript. Такой подход позволяет программировать полноценный веб приложения и функциональные сайты.</li>
51 <li>Интеграция с другими технологиями. Изучаемый скриптовый язык интегрируется с другими технологиями вроде HTML, CSS и JavaScript. Такой подход позволяет программировать полноценный веб приложения и функциональные сайты.</li>
52 <li>Наличие огромного количества библиотек и фреймворков. Все они делают разработку намного проще, а также предоставляют готовые решения для разнообразных задач.</li>
52 <li>Наличие огромного количества библиотек и фреймворков. Все они делают разработку намного проще, а также предоставляют готовые решения для разнообразных задач.</li>
53 <li>Кроссплатформенность. The PHP поддерживается на самых разных операционных системах. Проекты, созданные с его помощью, будут запускаться на macOS, Linux и Windows. Данный инструмент разработки также предусматривает поддержку различных веб-серверов: Apache, Nginx и других.</li>
53 <li>Кроссплатформенность. The PHP поддерживается на самых разных операционных системах. Проекты, созданные с его помощью, будут запускаться на macOS, Linux и Windows. Данный инструмент разработки также предусматривает поддержку различных веб-серверов: Apache, Nginx и других.</li>
54 </ol><p>При помощи the PHP получится сделать функциональное онлайн-приложение или веб-сайт, обладая минимальными навыками в области разработки. Изучать этот инструмент программирования рекомендуется всем веб-программистам.</p>
54 </ol><p>При помощи the PHP получится сделать функциональное онлайн-приложение или веб-сайт, обладая минимальными навыками в области разработки. Изучать этот инструмент программирования рекомендуется всем веб-программистам.</p>
55 <h2>Отличия от других языков</h2>
55 <h2>Отличия от других языков</h2>
56 <p>The Hypertext Preprocessor (сокращенно PHP) сильно отличается от других средств разработки. CSS- и HTML-файлы, как и изображения, отправляются клиенту (браузеру) сразу, независимо от содержания. PHP-документы включают в себя коды, интерпретируемые на серверах. Клиент получает не сам PHP-код, а результат его реализации, который обычно выступает чистым CSS и HTML. Пользователи не смогут ознакомиться с исходным кодом приложения или сайта. Это огромный плюс для безопасности проекта, потому что понять его логику будет проблематично.</p>
56 <p>The Hypertext Preprocessor (сокращенно PHP) сильно отличается от других средств разработки. CSS- и HTML-файлы, как и изображения, отправляются клиенту (браузеру) сразу, независимо от содержания. PHP-документы включают в себя коды, интерпретируемые на серверах. Клиент получает не сам PHP-код, а результат его реализации, который обычно выступает чистым CSS и HTML. Пользователи не смогут ознакомиться с исходным кодом приложения или сайта. Это огромный плюс для безопасности проекта, потому что понять его логику будет проблематично.</p>
57 <p>Рассматриваемый инструмент разработки хранит состояние, созданное в текущий момент. Классические компилируемые языки разработки работают все время: от запуска до остановки приложения. PHP-скрипт начинает работать с момента обращения веб-сервера, а заканчивает - при возврате сгенерированного пакета данных обратно серверу.</p>
57 <p>Рассматриваемый инструмент разработки хранит состояние, созданное в текущий момент. Классические компилируемые языки разработки работают все время: от запуска до остановки приложения. PHP-скрипт начинает работать с момента обращения веб-сервера, а заканчивает - при возврате сгенерированного пакета данных обратно серверу.</p>
58 <h2>Принцип работы технологии на сервере</h2>
58 <h2>Принцип работы технологии на сервере</h2>
59 <p>Работает технология the PHP в клиент-серверной модели так:</p>
59 <p>Работает технология the PHP в клиент-серверной модели так:</p>
60 <ol><li>Сначала входящее соединение принимает и анализирует веб-сервер. На данном этапе ответ интерпретируется и формируется.</li>
60 <ol><li>Сначала входящее соединение принимает и анализирует веб-сервер. На данном этапе ответ интерпретируется и формируется.</li>
61 <li>В качестве результата функционирования PHP-интерпретатора приходит HTML-код. PHP-скрипт преобразуется в статический HTML-код, который смогут прочитать браузеры. В процессе работы скрипт может задействовать MySQL - свободную систему управления базами данных. Она отвечает за обмен информацией с сервером базы данных на согласованном языке - SQL. Сервер базы данных и веб-сервер образуют тандем, который читает и записывает данные, предоставляя их посетителям веб-сайтов.</li>
61 <li>В качестве результата функционирования PHP-интерпретатора приходит HTML-код. PHP-скрипт преобразуется в статический HTML-код, который смогут прочитать браузеры. В процессе работы скрипт может задействовать MySQL - свободную систему управления базами данных. Она отвечает за обмен информацией с сервером базы данных на согласованном языке - SQL. Сервер базы данных и веб-сервер образуют тандем, который читает и записывает данные, предоставляя их посетителям веб-сайтов.</li>
62 <li>База данных отправляет полученную информацию PHP-скрипту, который расставляет их по нужным местам страницы или пакета данных.</li>
62 <li>База данных отправляет полученную информацию PHP-скрипту, который расставляет их по нужным местам страницы или пакета данных.</li>
63 <li>Скрипт формирует окончательный ответ. Он направляется веб-серверу.</li>
63 <li>Скрипт формирует окончательный ответ. Он направляется веб-серверу.</li>
64 <li>Веб-сервер возвращает клиенту ответ в виде страницы или пакета данных.</li>
64 <li>Веб-сервер возвращает клиенту ответ в виде страницы или пакета данных.</li>
65 </ol><p>PHP-код и HTML могут быть совмещены в рамках одного и того же проекта. Это позволяет получать динамические страницы, которые каждый раз показывают разную информацию - в зависимости от полученных пользовательских данных или настроек.</p>
65 </ol><p>PHP-код и HTML могут быть совмещены в рамках одного и того же проекта. Это позволяет получать динамические страницы, которые каждый раз показывают разную информацию - в зависимости от полученных пользовательских данных или настроек.</p>
66 <h2>Версии и их особенности</h2>
66 <h2>Версии и их особенности</h2>
67 <p>Какой язык программирования PHP, понятно. Он имеет несколько версий, каждая из которых предусматривает свои ключевые особенности:</p>
67 <p>Какой язык программирования PHP, понятно. Он имеет несколько версий, каждая из которых предусматривает свои ключевые особенности:</p>
68 <ol><li>3.0 - самая первая сборка языка. Она напоминает современный интерпретатор. Появилась в 1997 году. Ее преимуществом стала возможность расширения ядра и добавления дополнительных модулей сторонними программистами. В версии 3.0 начал поддерживаться ООП-синтаксис.</li>
68 <ol><li>3.0 - самая первая сборка языка. Она напоминает современный интерпретатор. Появилась в 1997 году. Ее преимуществом стала возможность расширения ядра и добавления дополнительных модулей сторонними программистами. В версии 3.0 начал поддерживаться ООП-синтаксис.</li>
69 <li>4.0 - сборка, вышедшая в 2000-м году. Она получила обновленный движок Zend Engine. В этой версии the PHP значительно возросла производительность. Сборка стала поддерживать больше HTTP-сессий и серверов. Обработка информации, видимой пользователями, стала более безопасной. Также тут появились новые языковые конструкции.</li>
69 <li>4.0 - сборка, вышедшая в 2000-м году. Она получила обновленный движок Zend Engine. В этой версии the PHP значительно возросла производительность. Сборка стала поддерживать больше HTTP-сессий и серверов. Обработка информации, видимой пользователями, стала более безопасной. Также тут появились новые языковые конструкции.</li>
70 <li>5.0 - сборка, появившаяся в 2004 году. Она управляется обновленным ядром Zend Engine 2.0 с абсолютно новой объектной моделью и иными дополнительными возможностями.</li>
70 <li>5.0 - сборка, появившаяся в 2004 году. Она управляется обновленным ядром Zend Engine 2.0 с абсолютно новой объектной моделью и иными дополнительными возможностями.</li>
71 <li>7.0 - версия языка, появившаяся в 2015 году. У нее была увеличена производительность: теперь разработчики смогли обрабатывать большой объем трафика теми же ресурсами веб-серверов. В новой версии языка появилась возможность указывать тип возвращаемых из функции данных. Тут появился контроль передаваемых типов для данных. Были введены новые операторы.</li>
71 <li>7.0 - версия языка, появившаяся в 2015 году. У нее была увеличена производительность: теперь разработчики смогли обрабатывать большой объем трафика теми же ресурсами веб-серверов. В новой версии языка появилась возможность указывать тип возвращаемых из функции данных. Тут появился контроль передаваемых типов для данных. Были введены новые операторы.</li>
72 <li>8.0 - последняя сборка PHP. Она вышла в конце 2020 года. Язык начал поддерживать union-типы, аннотации и компиляцию байт-кода в машинный код прямо во время работы приложения. Данная сборка поддерживается свободными разработчиками.</li>
72 <li>8.0 - последняя сборка PHP. Она вышла в конце 2020 года. Язык начал поддерживать union-типы, аннотации и компиляцию байт-кода в машинный код прямо во время работы приложения. Данная сборка поддерживается свободными разработчиками.</li>
73 </ol><p>Новых версий the PHP пока не имеет. Раньше проект поддерживался компанией Microsoft, но его 8 версия не нашла признания у компании.</p>
73 </ol><p>Новых версий the PHP пока не имеет. Раньше проект поддерживался компанией Microsoft, но его 8 версия не нашла признания у компании.</p>
74 <h2>Преимущества и недостатки</h2>
74 <h2>Преимущества и недостатки</h2>
75 <p>The PHP имеет следующие преимущества:</p>
75 <p>The PHP имеет следующие преимущества:</p>
76 <ul><li>поддержка огромного количества баз данных, фреймворков и библиотек;</li>
76 <ul><li>поддержка огромного количества баз данных, фреймворков и библиотек;</li>
77 <li>бесплатное распространение;</li>
77 <li>бесплатное распространение;</li>
78 <li>открытый исходный код;</li>
78 <li>открытый исходный код;</li>
79 <li>гибкость и свобода в плане разработки;</li>
79 <li>гибкость и свобода в плане разработки;</li>
80 <li>простой для понимания синтаксис;</li>
80 <li>простой для понимания синтаксис;</li>
81 <li>совместимость практически со всеми современными серверами;</li>
81 <li>совместимость практически со всеми современными серверами;</li>
82 <li>простая система объектов и классов.</li>
82 <li>простая система объектов и классов.</li>
83 </ul><p>Недостатки у the PHP следующие:</p>
83 </ul><p>Недостатки у the PHP следующие:</p>
84 <ul><li>необходимость дополнительного изучения CSS и HTML;</li>
84 <ul><li>необходимость дополнительного изучения CSS и HTML;</li>
85 - <li>сложная поддержка - обнаружить ошибку в исодном коде бывает непросто;</li>
85 + <li>сложная поддержка - обнаружить ошибку в исходном коде бывает непросто;</li>
86 <li>низкий уровень производительности;</li>
86 <li>низкий уровень производительности;</li>
87 <li>отсутствие четкой системы в названиях функций стандартной библиотеки: одни имеют сокращения и подчеркивания, другие - нет.</li>
87 <li>отсутствие четкой системы в названиях функций стандартной библиотеки: одни имеют сокращения и подчеркивания, другие - нет.</li>
88 </ul><p>Изучить данный язык будет легко даже тому, кто ранее не был знаком с разработкой, но хочет научиться программировать. А для устранения недостатков этого языка используются различные фреймворки, предоставляющие инструмента и структуры для более безопасного программирования.</p>
88 </ul><p>Изучить данный язык будет легко даже тому, кто ранее не был знаком с разработкой, но хочет научиться программировать. А для устранения недостатков этого языка используются различные фреймворки, предоставляющие инструмента и структуры для более безопасного программирования.</p>
89 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
89 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
90  
90