0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#Руководства</a></p>
1
<p><a>#Руководства</a></p>
2
<ul><li>3 ноя 2022</li>
2
<ul><li>3 ноя 2022</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Народная мудрость гласит: что написано на PHP, то не вырубишь топором. Именно поэтому язык остаётся одним из самых популярных в веб-разработке.</p>
4
</ul><p>Народная мудрость гласит: что написано на PHP, то не вырубишь топором. Именно поэтому язык остаётся одним из самых популярных в веб-разработке.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Выпускник факультета автоматизации и информатики МГГУ, исполнительный директор компании QSOFT.</p>
6
<p>Выпускник факультета автоматизации и информатики МГГУ, исполнительный директор компании QSOFT.</p>
7
<p>Сегодня мы познакомимся с простым, но имеющим огромные возможности языком программирования - PHP. Узнаем, чем он привлекателен, на какую зарплату могут рассчитывать начинающие PHP-разработчики и как развиваться в веб-разработке. Для начинающих - на примерах покажем, как с нуля создать простой скрипт.</p>
7
<p>Сегодня мы познакомимся с простым, но имеющим огромные возможности языком программирования - PHP. Узнаем, чем он привлекателен, на какую зарплату могут рассчитывать начинающие PHP-разработчики и как развиваться в веб-разработке. Для начинающих - на примерах покажем, как с нуля создать простой скрипт.</p>
8
<ul><li><a>Что пишут на языке программирования PHP</a></li>
8
<ul><li><a>Что пишут на языке программирования PHP</a></li>
9
<li><a>Почему PHP востребован и популярен в веб-разработке</a></li>
9
<li><a>Почему PHP востребован и популярен в веб-разработке</a></li>
10
<li><a>Сколько зарабатывают начинающие и опытные разработчики</a></li>
10
<li><a>Сколько зарабатывают начинающие и опытные разработчики</a></li>
11
<li><a>Что нужно знать и как новичку развиваться в профессии</a></li>
11
<li><a>Что нужно знать и как новичку развиваться в профессии</a></li>
12
<li><a>Какие книги почитать для самостоятельного изучения PHP</a></li>
12
<li><a>Какие книги почитать для самостоятельного изучения PHP</a></li>
13
<li><a>Как написать простой скрипт и сайт</a></li>
13
<li><a>Как написать простой скрипт и сайт</a></li>
14
</ul><p>Язык программирования PHP применяют преимущественно в разработке сайтов и веб-приложений, а именно в бэкенде.</p>
14
</ul><p>Язык программирования PHP применяют преимущественно в разработке сайтов и веб-приложений, а именно в бэкенде.</p>
15
<p>Все сайты, которые мы видим в интернете, состоят из двух частей: фронтенда и бэкенда. То, что видит пользователь, - анимация, слайдеры, выпадающие меню и прочее, - это фронтенд. Дизайнеры рисуют макет сайта, а разработчики превращают его в код на <a>HTML</a>,<a>CSS</a>и <a>JavaScript</a>.</p>
15
<p>Все сайты, которые мы видим в интернете, состоят из двух частей: фронтенда и бэкенда. То, что видит пользователь, - анимация, слайдеры, выпадающие меню и прочее, - это фронтенд. Дизайнеры рисуют макет сайта, а разработчики превращают его в код на <a>HTML</a>,<a>CSS</a>и <a>JavaScript</a>.</p>
16
<p>На уровне бэкенда создаётся сама платформа, которая связывает сайт с внутренними серверными системами, обрабатывает пользовательские запросы, общается с базой данных и передаёт результаты во фронтенд. Именно для создания бэкенда и используется язык PHP.</p>
16
<p>На уровне бэкенда создаётся сама платформа, которая связывает сайт с внутренними серверными системами, обрабатывает пользовательские запросы, общается с базой данных и передаёт результаты во фронтенд. Именно для создания бэкенда и используется язык PHP.</p>
17
<p>Языку PHP уже более 20 лет. Он был разработан датчанином Расмусом Лердорфом в 1994 году как надстройка, которая показывала количество посещений его персональной странички. Тогда он назвал её просто - Personal Home Page.</p>
17
<p>Языку PHP уже более 20 лет. Он был разработан датчанином Расмусом Лердорфом в 1994 году как надстройка, которая показывала количество посещений его персональной странички. Тогда он назвал её просто - Personal Home Page.</p>
18
<p>Язык непрерывно эволюционирует. В 2004 году вышел PHP 5, который добился большой популярности у веб-разработчиков благодаря хорошей реализации ООП. В декабре 2015 года вышла седьмая версия, которая позволила создавать более быстрые программы. PHP 8 появился в ноябре 2020 года, а на 24 ноября 2022 года намечен выход версии 8.2.</p>
18
<p>Язык непрерывно эволюционирует. В 2004 году вышел PHP 5, который добился большой популярности у веб-разработчиков благодаря хорошей реализации ООП. В декабре 2015 года вышла седьмая версия, которая позволила создавать более быстрые программы. PHP 8 появился в ноябре 2020 года, а на 24 ноября 2022 года намечен выход версии 8.2.</p>
19
<p>По данным<a>W3Techs</a>, доля веб-сайтов с бэкендом на PHP составляет около 80%. В первую очередь это связано с тем, что на нём написаны популярные CMS WordPress и Drupal. Кроме того, на PHP написаны "Фейсбук"*, "ВКонтакте", поисковая система Yahoo, "Википедия", немалая часть сервисов Google и отечественная CMS "1С-Битрикс".</p>
19
<p>По данным<a>W3Techs</a>, доля веб-сайтов с бэкендом на PHP составляет около 80%. В первую очередь это связано с тем, что на нём написаны популярные CMS WordPress и Drupal. Кроме того, на PHP написаны "Фейсбук"*, "ВКонтакте", поисковая система Yahoo, "Википедия", немалая часть сервисов Google и отечественная CMS "1С-Битрикс".</p>
20
Крупнейшие мировые компании, которые используют язык PHP<em>Изображение: Skillbox Media</em><p>PHP часто учат с нуля, так как у него очень низкий порог входа. Уже через месяц обучения вы будете писать небольшие сайты. А в дальнейшем, развив свои навыки, сможете работать над высоконагруженными системами для крупных компаний.</p>
20
Крупнейшие мировые компании, которые используют язык PHP<em>Изображение: Skillbox Media</em><p>PHP часто учат с нуля, так как у него очень низкий порог входа. Уже через месяц обучения вы будете писать небольшие сайты. А в дальнейшем, развив свои навыки, сможете работать над высоконагруженными системами для крупных компаний.</p>
21
<p>Несмотря на то что PHP уже десять лет пророчат скорую смерть, он остаётся самым востребованным языком программирования. Доля вакансий, в которых требуется знание PHP, составляет 24,6%. Примерно столько же занимает Java с 24,1%. А третий по популярности С# значительно отстаёт - 9,8%.</p>
21
<p>Несмотря на то что PHP уже десять лет пророчат скорую смерть, он остаётся самым востребованным языком программирования. Доля вакансий, в которых требуется знание PHP, составляет 24,6%. Примерно столько же занимает Java с 24,1%. А третий по популярности С# значительно отстаёт - 9,8%.</p>
22
PHP, Java и C# - самые популярные у работодателей языки<em>Изображение: Skillbox Media</em><p>Рейтинг популярности языков программирования составлен на основе вакансий с русскоязычных карьерных сервисов. Скорее всего, в ближайшие пять лет соотношение не изменится.</p>
22
PHP, Java и C# - самые популярные у работодателей языки<em>Изображение: Skillbox Media</em><p>Рейтинг популярности языков программирования составлен на основе вакансий с русскоязычных карьерных сервисов. Скорее всего, в ближайшие пять лет соотношение не изменится.</p>
23
<p>Согласно<a>HeadHunter</a>, зарплатный максимум PHP-программиста в России составляет 10 тысяч долларов. Если разделить зарплаты по уровням профессионального развития программиста, то цифры такие:</p>
23
<p>Согласно<a>HeadHunter</a>, зарплатный максимум PHP-программиста в России составляет 10 тысяч долларов. Если разделить зарплаты по уровням профессионального развития программиста, то цифры такие:</p>
24
<ul><li><strong>Junior Developer - от 40 тысяч рублей в месяц.</strong>Только входит в профессию, умеет работать с легаси-кодом и писать простые скрипты, имеет коммерческий опыт программирования порядка 2-3 месяцев.</li>
24
<ul><li><strong>Junior Developer - от 40 тысяч рублей в месяц.</strong>Только входит в профессию, умеет работать с легаси-кодом и писать простые скрипты, имеет коммерческий опыт программирования порядка 2-3 месяцев.</li>
25
<li><strong>Middle Developer - от 100 тысяч рублей в месяц.</strong>Может самостоятельно справиться с 90% поставленных задач и имеет опыт программирования от шести месяцев до года.</li>
25
<li><strong>Middle Developer - от 100 тысяч рублей в месяц.</strong>Может самостоятельно справиться с 90% поставленных задач и имеет опыт программирования от шести месяцев до года.</li>
26
<li><strong>Senior Developer - от 150 тысяч рублей в месяц.</strong>Может решить любую задачу на PHP, спроектировать решение, архитектуру, подобрать код и обучить junior- или middle-программиста выполнять эти задачи.</li>
26
<li><strong>Senior Developer - от 150 тысяч рублей в месяц.</strong>Может решить любую задачу на PHP, спроектировать решение, архитектуру, подобрать код и обучить junior- или middle-программиста выполнять эти задачи.</li>
27
</ul><p>В 2022 году зарплаты PHP-разработчиков в России <a>выросли</a> сильнее, чем зарплаты программистов на всех других языках. Джунам чаще стали предлагать от 60 тысяч рублей в месяц, а сеньорам - от 400 тысяч.</p>
27
</ul><p>В 2022 году зарплаты PHP-разработчиков в России <a>выросли</a> сильнее, чем зарплаты программистов на всех других языках. Джунам чаще стали предлагать от 60 тысяч рублей в месяц, а сеньорам - от 400 тысяч.</p>
28
<p>Рассмотрим технологии, которые должен освоить начинающий бэкенд-разработчик.</p>
28
<p>Рассмотрим технологии, которые должен освоить начинающий бэкенд-разработчик.</p>
29
<ul><li><strong>HTML и CSS</strong> - языки разметки страницы. Чаще всех их используют фронтенд-разработчики, но вам нужно знать и понимать основы, так как придётся работать с готовой разметкой.</li>
29
<ul><li><strong>HTML и CSS</strong> - языки разметки страницы. Чаще всех их используют фронтенд-разработчики, но вам нужно знать и понимать основы, так как придётся работать с готовой разметкой.</li>
30
<li><strong>JavaScript</strong>- код, выполняемый на стороне клиента (браузера). Он задаёт механику работы страницы. Необходимо уметь читать его и понимать, для чего нужен тот или иной его кусок.</li>
30
<li><strong>JavaScript</strong>- код, выполняемый на стороне клиента (браузера). Он задаёт механику работы страницы. Необходимо уметь читать его и понимать, для чего нужен тот или иной его кусок.</li>
31
<li><strong>PHP</strong>- ядро сайта, скриптовый язык, работающий на уровне сервера и взаимодействующий с серверными структурами, на которых строится веб-проект.</li>
31
<li><strong>PHP</strong>- ядро сайта, скриптовый язык, работающий на уровне сервера и взаимодействующий с серверными структурами, на которых строится веб-проект.</li>
32
<li><strong>SQL</strong>- язык структурированных запросов, применяемый для управления базами данных, например, в СУБД MySQL.</li>
32
<li><strong>SQL</strong>- язык структурированных запросов, применяемый для управления базами данных, например, в СУБД MySQL.</li>
33
<li><strong>Linux</strong>- да, именно Linux. Windows не предназначена для использования в качестве операционной системы для сервера, хотя PHP может работать как в Windows, так и в Linux. В рамках обучения не обязательно использовать именно Linux, но важно знать, что в реальных проектах серверы обычно работают под этой операционной системой.</li>
33
<li><strong>Linux</strong>- да, именно Linux. Windows не предназначена для использования в качестве операционной системы для сервера, хотя PHP может работать как в Windows, так и в Linux. В рамках обучения не обязательно использовать именно Linux, но важно знать, что в реальных проектах серверы обычно работают под этой операционной системой.</li>
34
</ul><p>Вот самые популярные и проверенные временем книги, в которых излагаются основы языка, работы с разметкой, принципы взаимодействия бэкенда и фронтенда и наиболее важные концепции веб-программирования:</p>
34
</ul><p>Вот самые популярные и проверенные временем книги, в которых излагаются основы языка, работы с разметкой, принципы взаимодействия бэкенда и фронтенда и наиболее важные концепции веб-программирования:</p>
35
<ul><li><strong>"PHP 7. В подлиннике"</strong>,<strong></strong>Дмитрий Котеров, Игорь Симдянов.</li>
35
<ul><li><strong>"PHP 7. В подлиннике"</strong>,<strong></strong>Дмитрий Котеров, Игорь Симдянов.</li>
36
<li><strong>"Изучаем PHP 7. Руководство по созданию интерактивных сайтов"</strong>,<strong></strong>Дэвид Скляр.</li>
36
<li><strong>"Изучаем PHP 7. Руководство по созданию интерактивных сайтов"</strong>,<strong></strong>Дэвид Скляр.</li>
37
<li><strong>"Создаём динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5"</strong>,<strong></strong>Робин Никсон.</li>
37
<li><strong>"Создаём динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5"</strong>,<strong></strong>Робин Никсон.</li>
38
<li><strong>"PHP. Объекты, шаблоны и методики программирования"</strong>, Мэтт Зандстра.</li>
38
<li><strong>"PHP. Объекты, шаблоны и методики программирования"</strong>, Мэтт Зандстра.</li>
39
<li><strong>"Разработка веб-приложений с помощью PHP и MySQL"</strong>, Люк Веллинг, Лора Томсон.</li>
39
<li><strong>"Разработка веб-приложений с помощью PHP и MySQL"</strong>, Люк Веллинг, Лора Томсон.</li>
40
</ul><p>Чтобы освоить профессию, недостаточно знать язык программирования - нужно научиться мыслить как программист и постоянно расширять кругозор. В этом вам помогут<a>16 лучших книг для программиста</a>.</p>
40
</ul><p>Чтобы освоить профессию, недостаточно знать язык программирования - нужно научиться мыслить как программист и постоянно расширять кругозор. В этом вам помогут<a>16 лучших книг для программиста</a>.</p>
41
<p>Напишем небольшой сайт для поиска информации о количестве продуктов на складе. Мы не будем подробно вникать в синтаксис языка и в назначение операторов, наша задача - увидеть, как PHP взаимодействует с HTML. Но сначала установим компилятор и сервер, который будет обрабатывать запросы пользователей.</p>
41
<p>Напишем небольшой сайт для поиска информации о количестве продуктов на складе. Мы не будем подробно вникать в синтаксис языка и в назначение операторов, наша задача - увидеть, как PHP взаимодействует с HTML. Но сначала установим компилятор и сервер, который будет обрабатывать запросы пользователей.</p>
42
<p>Ниже приведены инструкции для операционных систем Windows, Linux и macOS.</p>
42
<p>Ниже приведены инструкции для операционных систем Windows, Linux и macOS.</p>
43
<p>Скачать PHP на Windows можно с <a>официального сайта</a>, предварительно выбрав подходящую версию языка и операционную систему. Мы установим PHP 8.1 для 64-битной системы, для других версий процедура будет такой же.</p>
43
<p>Скачать PHP на Windows можно с <a>официального сайта</a>, предварительно выбрав подходящую версию языка и операционную систему. Мы установим PHP 8.1 для 64-битной системы, для других версий процедура будет такой же.</p>
44
<p>Выбираем нужную версию PHP и вариант<strong>VS16×64 Thread Safe</strong>:</p>
44
<p>Выбираем нужную версию PHP и вариант<strong>VS16×64 Thread Safe</strong>:</p>
45
Скачиваем последнюю версию PHP с официального сайта языка<em>Скриншот: Skillbox Media</em><p>Теперь нужно распаковать архив в любое место на жёстком диске и запомнить путь до этой папки. Мы распакуем в папку C:\Program Files\php-8.1.0:</p>
45
Скачиваем последнюю версию PHP с официального сайта языка<em>Скриншот: Skillbox Media</em><p>Теперь нужно распаковать архив в любое место на жёстком диске и запомнить путь до этой папки. Мы распакуем в папку C:\Program Files\php-8.1.0:</p>
46
Распаковываем архив в любом удобном месте на жёстком диске<em>Скриншот: Skillbox Media</em><p>Дальше нужно указать системе, что мы установили PHP. Нажимаем правой кнопкой на "Этот компьютер" → "Свойства" → "Дополнительные параметры системы" → "Переменные среды":</p>
46
Распаковываем архив в любом удобном месте на жёстком диске<em>Скриншот: Skillbox Media</em><p>Дальше нужно указать системе, что мы установили PHP. Нажимаем правой кнопкой на "Этот компьютер" → "Свойства" → "Дополнительные параметры системы" → "Переменные среды":</p>
47
<em>Скриншот: Skillbox Media</em><p>Выберите сверху и снизу Path → нажмите "Изменить". У вас откроется окно, в котором нужно нажать "Создать" в меню справа, а затем задать путь к папке PHP (в нашем случае это C:\Program Files\php-8.1.0). Затем нажмите "ОК":</p>
47
<em>Скриншот: Skillbox Media</em><p>Выберите сверху и снизу Path → нажмите "Изменить". У вас откроется окно, в котором нужно нажать "Создать" в меню справа, а затем задать путь к папке PHP (в нашем случае это C:\Program Files\php-8.1.0). Затем нажмите "ОК":</p>
48
Сюда вписываем путь до папки, где находится PHP<em>Скриншот: Skillbox Media</em><p>PHP установлен. Чтобы это проверить, открываем командную строку и пишем там команду php -v:</p>
48
Сюда вписываем путь до папки, где находится PHP<em>Скриншот: Skillbox Media</em><p>PHP установлен. Чтобы это проверить, открываем командную строку и пишем там команду php -v:</p>
49
Если PHP установлен правильно, выведется примерно такое<em>Скриншот: Skillbox Media</em><p>А чтобы запустить PHP-код, нужно создать текстовый файл с расширением .php и написать там какой-нибудь код. Например, такой:</p>
49
Если PHP установлен правильно, выведется примерно такое<em>Скриншот: Skillbox Media</em><p>А чтобы запустить PHP-код, нужно создать текстовый файл с расширением .php и написать там какой-нибудь код. Например, такой:</p>
50
Мы создали файл с расширением .php и написали в нём код, который выводит "Hello world!"<em>Скриншот: Skillbox Media</em><p>Теперь заходим в папку с этим файлом, нажимаем правую кнопку мыши и выбираем пункт "Открыть окно PowerShell здесь".</p>
50
Мы создали файл с расширением .php и написали в нём код, который выводит "Hello world!"<em>Скриншот: Skillbox Media</em><p>Теперь заходим в папку с этим файлом, нажимаем правую кнопку мыши и выбираем пункт "Открыть окно PowerShell здесь".</p>
51
Открываем PowerShell, чтобы запустить PHP-код<em>Скриншот: Skillbox Media</em><p>В открывшемся окне пишем команду php test.php - в консоли должна вывестись наша строка:</p>
51
Открываем PowerShell, чтобы запустить PHP-код<em>Скриншот: Skillbox Media</em><p>В открывшемся окне пишем команду php test.php - в консоли должна вывестись наша строка:</p>
52
Если строка вывелась, значит, PHP работает<em>Скриншот: Skillbox Media</em><p>Перед установкой обновите систему, чтобы во время установки не возникло ошибок:</p>
52
Если строка вывелась, значит, PHP работает<em>Скриншот: Skillbox Media</em><p>Перед установкой обновите систему, чтобы во время установки не возникло ошибок:</p>
53
sudo apt update<p>Затем установите PHP:</p>
53
sudo apt update<p>Затем установите PHP:</p>
54
sudo apt install php<p>Но это ещё не всё. Мы установили последнюю версию языка, однако, чтобы воспользоваться её функциями, нужно установить дополнительный репозиторий.</p>
54
sudo apt install php<p>Но это ещё не всё. Мы установили последнюю версию языка, однако, чтобы воспользоваться её функциями, нужно установить дополнительный репозиторий.</p>
55
<p>Сначала установим предварительные условия:</p>
55
<p>Сначала установим предварительные условия:</p>
56
sudo apt install software-properties-common -y<p>А потом и сам репозиторий:</p>
56
sudo apt install software-properties-common -y<p>А потом и сам репозиторий:</p>
57
sudo add-apt-repository ppa:ondrej/php<p>И ещё раз обновим локальные пакеты, чтобы можно было использовать добавленный репозиторий:</p>
57
sudo add-apt-repository ppa:ondrej/php<p>И ещё раз обновим локальные пакеты, чтобы можно было использовать добавленный репозиторий:</p>
58
sudo apt update<p>Скачать PHP с официального сайта на макбук не получится. Придётся установить дополнительные программы. Первая из них -<a>Homebrew</a>. Это менеджер пакетов, который позволяет установить любые утилиты для программистов.</p>
58
sudo apt update<p>Скачать PHP с официального сайта на макбук не получится. Придётся установить дополнительные программы. Первая из них -<a>Homebrew</a>. Это менеджер пакетов, который позволяет установить любые утилиты для программистов.</p>
59
<p>Заходим на официальный сайт и копируем команду, которую нам предлагают:</p>
59
<p>Заходим на официальный сайт и копируем команду, которую нам предлагают:</p>
60
<em>Скриншот: Skillbox Media</em><p>Открываем терминал: меню приложений → папка "Прочие" → "Терминал". Далее вводим команду:</p>
60
<em>Скриншот: Skillbox Media</em><p>Открываем терминал: меню приложений → папка "Прочие" → "Терминал". Далее вводим команду:</p>
61
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"<p>Дальше в терминале вы увидите следующие инструкции по установке. Нужно будет добавить brew в путь системы. Найдите вот эту строчку и скопируйте все команды оттуда:</p>
61
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"<p>Дальше в терминале вы увидите следующие инструкции по установке. Нужно будет добавить brew в путь системы. Найдите вот эту строчку и скопируйте все команды оттуда:</p>
62
<p>Затем вставьте их снова в терминал, и установка brew будет окончена.</p>
62
<p>Затем вставьте их снова в терминал, и установка brew будет окончена.</p>
63
<p>Наконец, устанавливаем сам PHP с помощью команды brew install php:</p>
63
<p>Наконец, устанавливаем сам PHP с помощью команды brew install php:</p>
64
<em>Скриншот: Skillbox Media</em><p>Чтобы проверить корректность установки, введите в терминале команду php -v:</p>
64
<em>Скриншот: Skillbox Media</em><p>Чтобы проверить корректность установки, введите в терминале команду php -v:</p>
65
<em>Скриншот: Skillbox Media</em><p>В консоли должна вывестись версия языка, который вы только что установили.</p>
65
<em>Скриншот: Skillbox Media</em><p>В консоли должна вывестись версия языка, который вы только что установили.</p>
66
<p>Писать код будем в текстовом редакторе Sublime Text 3, его можно скачать бесплатно на <a>официальном сайте</a>. Создадим папку Server в любом месте на жёстком диске и добавим в неё три файла: index.html, handler.php и styles.css.</p>
66
<p>Писать код будем в текстовом редакторе Sublime Text 3, его можно скачать бесплатно на <a>официальном сайте</a>. Создадим папку Server в любом месте на жёстком диске и добавим в неё три файла: index.html, handler.php и styles.css.</p>
67
<p>Код нашей главной страницы index.html будет иметь следующий вид:</p>
67
<p>Код нашей главной страницы index.html будет иметь следующий вид:</p>
68
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example</title> </head> <body> <form action="handler.php" method="get"> <label> Продукт <input type="text" name="searchText"> </label> <input type="submit" name="searchSubmit" value="Поиск"> </form> </body> </html><p>Это код формы с текстовым полем и кнопкой. Атрибут action тега <form> указывает на имя и путь файла-скрипта, который будет обрабатывать введённые данные, - в нашем случае это файл handler.php. Атрибут method указывает на способ передачи данных - get. Эти методы прописаны в протоколе HTTP, по которому сайты общаются с браузером.</p>
68
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example</title> </head> <body> <form action="handler.php" method="get"> <label> Продукт <input type="text" name="searchText"> </label> <input type="submit" name="searchSubmit" value="Поиск"> </form> </body> </html><p>Это код формы с текстовым полем и кнопкой. Атрибут action тега <form> указывает на имя и путь файла-скрипта, который будет обрабатывать введённые данные, - в нашем случае это файл handler.php. Атрибут method указывает на способ передачи данных - get. Эти методы прописаны в протоколе HTTP, по которому сайты общаются с браузером.</p>
69
<p>Напишем код для скрипта handler.php.</p>
69
<p>Напишем код для скрипта handler.php.</p>
70
<?php echo "<link rel='stylesheet' href='styles.css'>"; $fruits = array('Яблоки' => '30кг', 'Груши' => '50кг', 'Бананы' => '20кг'); $vegetables = array('Картошка' => '100кг', 'Огурцы' => '80кг', 'Помидоры' => '50кг'); $berries = array('Вишня' => '20кг', 'Виноград' => '30кг', 'Малина' => '50кг'); $searchText = mb_strtolower($_GET['searchText']); if(isset($_GET['searchSubmit'])){ if($searchText == 'фрукты') $products = $fruits; elseif ($searchText == 'овощи') $products = $vegetables; elseif ($searchText == 'ягоды') $products = $berries; echo '<table> <thead> <td>Продукт</td> <td>Количество</td> </thead>'; foreach ((array)$products as $key => $value) { echo '<tr> <td>'. $key .'</td> <td>'. $value .'</td> </tr>'; } echo '<table>'; } ?><p>Что тут происходит:</p>
70
<?php echo "<link rel='stylesheet' href='styles.css'>"; $fruits = array('Яблоки' => '30кг', 'Груши' => '50кг', 'Бананы' => '20кг'); $vegetables = array('Картошка' => '100кг', 'Огурцы' => '80кг', 'Помидоры' => '50кг'); $berries = array('Вишня' => '20кг', 'Виноград' => '30кг', 'Малина' => '50кг'); $searchText = mb_strtolower($_GET['searchText']); if(isset($_GET['searchSubmit'])){ if($searchText == 'фрукты') $products = $fruits; elseif ($searchText == 'овощи') $products = $vegetables; elseif ($searchText == 'ягоды') $products = $berries; echo '<table> <thead> <td>Продукт</td> <td>Количество</td> </thead>'; foreach ((array)$products as $key => $value) { echo '<tr> <td>'. $key .'</td> <td>'. $value .'</td> </tr>'; } echo '<table>'; } ?><p>Что тут происходит:</p>
71
<ul><li><strong>В</strong><strong>строке 1</strong>с помощью оператора echo вставляем тег link в HTML-код страницы.</li>
71
<ul><li><strong>В</strong><strong>строке 1</strong>с помощью оператора echo вставляем тег link в HTML-код страницы.</li>
72
<li><strong>В строках 3-5</strong>создаётся три массива, которые содержат информацию о фруктах, овощах и ягодах. Подобного рода данные должны храниться в базе данных и затем из неё вытягиваться, но для примера мы ввели их вручную.</li>
72
<li><strong>В строках 3-5</strong>создаётся три массива, которые содержат информацию о фруктах, овощах и ягодах. Подобного рода данные должны храниться в базе данных и затем из неё вытягиваться, но для примера мы ввели их вручную.</li>
73
<li><strong>В строке</strong><strong>7</strong>создаётся переменная $searchText, которая содержит в себе введённое в текстовое поле значение. Это значение берётся из массива $_GET, в квадратных скобках которого указывается имя текстового поля, которое мы задали в файле index.html. Этот массив инициализируется при отправке формы.</li>
73
<li><strong>В строке</strong><strong>7</strong>создаётся переменная $searchText, которая содержит в себе введённое в текстовое поле значение. Это значение берётся из массива $_GET, в квадратных скобках которого указывается имя текстового поля, которое мы задали в файле index.html. Этот массив инициализируется при отправке формы.</li>
74
<li><strong>В строках</strong><strong>9-15</strong>проверяется, была ли нажата кнопка отправки формы searchSubmit. Затем проверяется введённое значение и, в зависимости от того, какой вид продукта ввёл пользователь, в переменную $products записывается массив с данными о продуктах.</li>
74
<li><strong>В строках</strong><strong>9-15</strong>проверяется, была ли нажата кнопка отправки формы searchSubmit. Затем проверяется введённое значение и, в зависимости от того, какой вид продукта ввёл пользователь, в переменную $products записывается массив с данными о продуктах.</li>
75
<li><strong>В строках</strong><strong>17-28</strong>массив выводится на экран в виде таблицы. Как видите, PHP отличает HTML-теги от обычных строк и выводит в окно браузера с помощью функции echo HTML-таблицу.</li>
75
<li><strong>В строках</strong><strong>17-28</strong>массив выводится на экран в виде таблицы. Как видите, PHP отличает HTML-теги от обычных строк и выводит в окно браузера с помощью функции echo HTML-таблицу.</li>
76
<li><strong>В строке</strong><strong>22</strong>наш массив products перебирается с помощью оператора цикла foreach.</li>
76
<li><strong>В строке</strong><strong>22</strong>наш массив products перебирается с помощью оператора цикла foreach.</li>
77
</ul><p>Чтобы придать таблице красивый вид, создадим небольшой файл стилей styles.css. Он подключается в файле handler.php во второй строчке кода.</p>
77
</ul><p>Чтобы придать таблице красивый вид, создадим небольшой файл стилей styles.css. Он подключается в файле handler.php во второй строчке кода.</p>
78
<p>Код styles.css такой:</p>
78
<p>Код styles.css такой:</p>
79
table { background: rgb(182, 182, 182); border: 2px solid rgb(0, 0, 0); border-collapse: collapse; } thead { background: rgb(11, 135, 28); color: white; } td { padding-right: 10px; }<p>Всё готово. Теперь нужно запустить веб-сервер. Для этого в терминале перейдём в папку с нашими файлами. Введите команду cd и укажите полный путь до вашей папки с файлами - например, C:\Program Files\Server. У нас на macOS будет такая команда:</p>
79
table { background: rgb(182, 182, 182); border: 2px solid rgb(0, 0, 0); border-collapse: collapse; } thead { background: rgb(11, 135, 28); color: white; } td { padding-right: 10px; }<p>Всё готово. Теперь нужно запустить веб-сервер. Для этого в терминале перейдём в папку с нашими файлами. Введите команду cd и укажите полный путь до вашей папки с файлами - например, C:\Program Files\Server. У нас на macOS будет такая команда:</p>
80
<em>Скриншот: Skillbox Media</em><p>Здесь вводим в консоли команду php -S 127.0.0.1:8000:</p>
80
<em>Скриншот: Skillbox Media</em><p>Здесь вводим в консоли команду php -S 127.0.0.1:8000:</p>
81
<em>Скриншот: Skillbox Media</em><p>Сервер запустился. Теперь открываем браузер и переходим на сайт: <a>http://127.0.0.1:8000/</a>. Готово - вы видите ваш сайт.</p>
81
<em>Скриншот: Skillbox Media</em><p>Сервер запустился. Теперь открываем браузер и переходим на сайт: <a>http://127.0.0.1:8000/</a>. Готово - вы видите ваш сайт.</p>
82
<p>Введём в поле значение "Фрукты" и нажмём кнопку "Поиск".</p>
82
<p>Введём в поле значение "Фрукты" и нажмём кнопку "Поиск".</p>
83
<em>Скриншот: Skillbox Media</em><p>Откроется главная страница index.html. Веб-сервер перебросил нас на выполнение скрипта handler.php, который, в свою очередь, отобразил на экране таблицу фруктов. Обратите внимание на адресную строку:</p>
83
<em>Скриншот: Skillbox Media</em><p>Откроется главная страница index.html. Веб-сервер перебросил нас на выполнение скрипта handler.php, который, в свою очередь, отобразил на экране таблицу фруктов. Обратите внимание на адресную строку:</p>
84
Так выглядит наш get-запрос<em>Скриншот: Skillbox Media</em><p>После вопросительного знака указывается имя параметра, в данном случае это название поля searchText, и через знак = указывается его введённое значение. Таких пар "имя = значение" может быть несколько, они должны отделяться друг от друга знаком &. Если вам нужно передать большой текст или конфиденциальные данные (например, логин и пароль), то не рекомендуем использовать get-запрос - для таких случаев есть метод post.</p>
84
Так выглядит наш get-запрос<em>Скриншот: Skillbox Media</em><p>После вопросительного знака указывается имя параметра, в данном случае это название поля searchText, и через знак = указывается его введённое значение. Таких пар "имя = значение" может быть несколько, они должны отделяться друг от друга знаком &. Если вам нужно передать большой текст или конфиденциальные данные (например, логин и пароль), то не рекомендуем использовать get-запрос - для таких случаев есть метод post.</p>
85
<p>При дальнейшем изучении - например, в рамках курса "<a>PHP-разработчик с нуля</a>" от Skillbox - вы обязательно узнаете, как PHP взаимодействует с базой данных, что такое объектная модель, как выполнять асинхронные запросы без перезагрузки страницы и как строить архитектуру высоконагруженных систем.</p>
85
<p>При дальнейшем изучении - например, в рамках курса "<a>PHP-разработчик с нуля</a>" от Skillbox - вы обязательно узнаете, как PHP взаимодействует с базой данных, что такое объектная модель, как выполнять асинхронные запросы без перезагрузки страницы и как строить архитектуру высоконагруженных систем.</p>
86
<p>Ещё раз подчеркнём, что PHP - один из самых востребованных языков программирования на данный момент. И если вдруг вы до сих пор не решили, стоит начинать учить PHP или нет, можете быть уверены - он откроет для вас большие возможности. Сможете ли вы ими воспользоваться - зависит только от вас.</p>
86
<p>Ещё раз подчеркнём, что PHP - один из самых востребованных языков программирования на данный момент. И если вдруг вы до сих пор не решили, стоит начинать учить PHP или нет, можете быть уверены - он откроет для вас большие возможности. Сможете ли вы ими воспользоваться - зависит только от вас.</p>
87
<a>Научитесь: Профессия PHP-разработчик с нуля до PRO Узнать больше</a>
87
<a>Научитесь: Профессия PHP-разработчик с нуля до PRO Узнать больше</a>