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