Первая страница на PHP
Создайте файл с именем hello.php в корневом каталоге веб-сервера ( DOCUMENT_ROOT ) и запишите в него следующее:
Пример #1 Первый скрипт на PHP: hello.php
Откройте данный файл в браузере, набрав имя вашего веб-сервера и /hello.php . При локальной разработке эта ссылка может быть чем-то вроде http://localhost/hello.php или http://127.0.0.1/hello.php , но это зависит от настроек вашего сервера. Если всё настроено правильно, этот файл будет обработан PHP и браузер выведет следующий текст:
Тестируем PHP Привет, мир!
Эта программа чрезвычайно проста, и для создания настолько простой странички даже необязательно использовать PHP. Все, что она делает, это вывод Hello World , используя инструкцию PHP echo . Заметьте, что файл не обязан быть выполняемым или ещё как-то отличаться от других файлов. Сервер знает, что этот файл должен быть обработан PHP, так как файл обладает расширением «.php», о котором в настройках сервера сказано, что подобные файлы должны передаваться PHP. Рассматривайте его как обычный HTML-файл, которому посчастливилось заполучить набор специальных тегов (доступных также и вам), способных на кучу интересных вещей.
Если у вас этот пример не отображает ничего или выводит окно загрузки, или если вы видите весь этот файл в текстовом виде, то, скорее всего, ваш веб-сервер не имеет поддержки PHP или был сконфигурирован неправильно. Попросите вашего администратора сервера включить такую поддержку. Предложите ему инструкцию по установке: раздел Установка данной документации. Если же вы разрабатываете скрипты на PHP дома (локально), то также прочтите эту главу, чтобы убедиться, что вы все настроили верно. Убедитесь также, что вы запрашиваете файл у сервера через протокол http. Если вы просто откроете файл из вашей файловой системы, он не будет обработан PHP. Если проблемы всё же остались, не стесняйтесь попросить помощи одним из » множества доступных способов получения поддержки по PHP.
Цель примера — показать формат специальных тегов PHP. В этом примере мы использовали . Таким образом можно где угодно «запрыгивать» и «выпрыгивать» из режима PHP в HTML файле. Подробнее об этом можно прочесть в разделе руководства Основной синтаксис.
Замечание: Замечание о переводах строк
Переводы строк немногое означают в HTML, однако считается хорошей идеей поддерживать HTML в удобочитаемом виде, перенося его на новую строку. PHP автоматически удаляет перевод строки, идущий сразу после закрывающего тега ?> . Это может быть чрезвычайно полезно, если вы используете множество блоков PHP-кода или подключаете PHP-файлы, которые не должны ничего выводить. В то же время, это может приводить в недоумение. Можно поставить пробел после закрывающего тега ?> и тогда пробел будет выведен вместе с переводом строки, или же вы можете специально добавить перевод строки в последний вызов echo/print из блока PHP-кода.
Замечание: Пара слов о текстовых редакторах
Существует множество текстовых редакторов и интегрированных сред разработки (IDE), в которых вы можете создавать и редактировать файлы PHP. Список некоторых редакторов содержится в разделе » Список редакторов PHP. Если вы хотите порекомендовать какой-либо редактор, посетите данную страницу и попросите добавить редактор в список. Использование редактора с подсветкой синтаксиса может быть очень большим подспорьем в вашей работе.
Замечание: Пара слов о текстовых процессорах
Текстовые процессоры (StarOffice Writer, Microsoft Word, Abiword и др.) в большинстве случаев не подходят для редактирования файлов PHP. Если вы всё же хотите использовать какой-либо из них для тестового скрипта, убедитесь, что сохраняете файл как простой текст (plain text), иначе PHP будет не в состоянии прочесть и запустить ваш скрипт.
Теперь, когда вы успешно создали работающий PHP-скрипт, самое время создать самый знаменитый PHP-скрипт! Вызовите функцию phpinfo() и вы увидите множество полезной информации о вашей системе и настройке, такой как доступные предопределённые переменные, загруженные PHP-модули и параметры настройки. Уделите некоторое время изучению этой важной информации.
Пример #2 Получение информации о системе из PHP
HTML в PHP — Веб-разработка на PHP
Главный секрет PHP заключается в том, что сам язык — шаблонизатор. Если посмотреть на другой язык, в его файлах нельзя увидеть ничего похожего на теги .
В PHP любой файл с кодом — это шаблон. Причем этот шаблон не имеет структуры, как бывает в некоторых шаблонизаторах.
Мы можем создать PHP-файл, написать любой текст вне тегов и запустить код на выполнение. При этом он не упадет с указанием синтаксической ошибки.
hi i am the template
Запуск этого кода выведет весь текст на экран:
То же самое касается HTML, так как это всего лишь текст. Достаточно в любом PHP-файле добавить немного HTML и запустить его, как он будет выведен на экран:
href="/lessons">Lessons
Запуск этого кода выведет весь текст на экран:
Такое поведение языка существует исключительно ради создания сайтов. Если запустить веб-сервер в директории с этим файлом index.php, то при обращении к этому сайту мы получим вывод как в терминале. Это значит, что мы можем заменить такой код:
echo 'hello, world
';
hello, world
Отсюда следует важный вывод. Любой PHP-файл – это обычный текстовый файл со вставками PHP-кода с помощью тегов . Любой текст, написанный внутри него, отдается в вывод как есть, будь то браузер или запуск в командной строке.
Теперь добавим немного PHP. Шаблон становится шаблоном, когда внутри него появляется подстановка данных. Принцип работы: в любом месте шаблона вставляются теги , внутри которых можно написать код. Фактически мы имеем дело с обычной строковой интерполяцией:
href="/lessons"> echo 'Lessons'; ?>
Добавим немного программирования. Запуск следующего кода вернет такой же результат, что и код выше:
$name = 'Lessons'; ?> href="/lessons"> echo $name; ?>
В этом примере мы добавили один блок сверху файла, внутри которого создали переменную. Затем мы использовали ее в другой вставке.
Все содержимое файла находится в одном пространстве и блоки кода, определенные дальше по тексту, имеют доступ к данным предыдущих блоков. Что важно, подстановка данных из кода происходит только в том случае, если этот код выполняет печать:
$name = 'Lessons'; $id = 23; ?> href="/lessons/ echo $id; ?>"> echo $name; ?>
Вывод на экран после запуска:
Для удобства вставки кода в HTML PHP предлагает альтернативный синтаксис для стандартных конструкций языка. Например, для вставки значения используется сокращенная версия тега начала PHP-кода: ?> . Она отличается от полной тем, что вместо
Сокращенная вставка
$name = 'Lessons'; ?> href="/lessons/ 23 ?>"> $name ?>
If
if ($a === 5) : ?> A is equal to 5 endif; ?>
Switch
switch ($foo) : ?> case 1: ?> . endswitch; ?>
Foreach
foreach ($users as $user) : ?> $user->getName() ?> endforeach; ?>
С одной стороны поддержка CGI внутри самого языка позволяет начать делать сайт «на коленке» без особых знаний программирования и HTTP, что многие и делают. С другой — PHP толкает к созданию не поддерживаемого кода, который не может никто прочитать кроме автора.
Upload your files enctype="multipart/form-data" action="upload.php" method="POST"> Upload your file type="file" name="uploaded_file"> /> type="submit" value="Upload"> if (!empty($_FILES['uploaded_file'])) $path = "uploads/"; $path = $path . basename( $_FILES['uploaded_file']['name']); if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $path)) echo "The file " . basename( $_FILES['uploaded_file']['name']) . " has been uploaded"; > else echo "There was an error uploading the file, please try again!"; > >
Такой способ программирования возможен только в PHP, потому что только PHP это сразу и язык, и шаблонизатор, и CGI-скрипт. При таком способе организации кода сайт быстро начинает представлять из себя мешанину HTML и PHP.
Если количество разных страниц сайта достигнет хотя бы десятка, то поддержка уже станет намного сложнее. Безопасность такой шаблонизации находится на нуле (см. XSS ).
Также PHP не поддерживает макеты — специализированные шаблоны, содержащие обвязку сайта, в которую вставляется HTML конкретного обработчика.
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Самые основы. Как работает PHP.
Отличие веб-приложения от обычной программы
Начиная писать программы для веба, многие начинающие программисты сталкиваются с тем, что поведение веб-приложения отличается от обычной программы. Они по привычке рассматривают систему браузер-сервер, как обычное приложение. Интерактивное. Нажал кнопку — система среагировала. Провел мышкой — среагировала. Вся информация, которая доступна клиенту — доступна и программе, программа все время находится в памяти.
Так вот, в веб-программировании это не так.
В момент, когда пользователь видит перед собой страницу и начинает совершать какие-то действия с ней, PHP уже завершил работу! И пользователь взаимодействует не с PHP скриптом, а со своим браузером, в котором отображается HTML, который РНР отправил в браузер. Результатом работы скрипта на PHP в большинстве случаев является обычный текст. Текст HTML страницы. Которая отдается браузеру и показывается им, как обычный HTML. Вы сами можете в этом убедиться, написав в скрипте
Вася!» ; ?> ;
и потом просмотрев в браузере исходный текст полученной страницы. Никаких тегов PHP там нет! Только
Привет, Вася!
Потому что PHP исполняется на сервере!
Сервер и браузер общаются, посылая друг другу запросы по особому протоколу — HTTP. Соединение может инициировать только браузер. Он посылает серверу запрос — показать такой-то файл. Сервер клиенту файл посылает.
Только так и происходит. Клиент запросил — сервер отдал. И забыл сразу о клиенте. Отсюда становится понятным ответ на вопрос, можно ли точно узнать, сколько юзеров сечас на сайте. Нельзя. Потому что «на сайте» нету ни одного. Они соединяются, запрашивают страницу, и отсоединяются. Не имеют постоянного соединения с сервером, как, например, игроки в Кваку. Узнать можно только примерно, записывая время каждого соединения и выбирая записи за определенный промежуток времени.
Так же отсюда становится ясно, что сервер может узнать о клиенте очень мало. Только то, что клиент пришлет в HTTP-запросе. Разрешения экрана там нет 😉
Все, что сервер может знать о клиенте, можно посмотреть командой phpinfo()
Пример общения браузера с сервером:
Пользователь нажимает на ссылку, браузер посылает запрос серверу и ждет ответа:
Браузер -> PHP
PHP выполняет скрипт, отдает результат в браузер и завершает работу:
PHP -> браузер
Браузер отображает страницу, «просматривая» её на предмет ссылок, которые надо запросить у сервера (теги , и так далее) и посылает соответствующие запросы. Их можно увидеть, просматривая обмен заголовками, о чем речь будет чуть ниже:
Браузер -> сервер, Браузер -> сервер, Браузер -> сервер.
Пользователь заполняет форму и нажимает на кнопку:
Браузер -> PHP
PHP обрабатывает форму, записывает данные в базу и посылает браузеру заголовок
Location:
PHP -> браузер
Браузер, получив этот заголовок, запрашивает указанную страницу
Браузер -> PHP
PHP выполняет ее. и так далее.
Как работает РНР, где он выполняется?
РНР выполняется на сервере. Браузер посылает серверу запрос на страницу с php кодом. Сервер отдает эту страницу на исполнение интерпретатору PHP, интерпретатор генерирует HTML код, отдает серверу, а сервер посылает клиенту. Никакого РНР кода в браузер не попадает (это важно! Это значит, что увидеть исходный код PHP скрипта невозможно!). Единственный способ отправить что-то скрипту — это кликнуть по ссылке или нажать на кнопку в форме. Так, чтобы РНР обрабатывал какие-то действия пользователя в браузере — невозможно. РНР остался на сервере, ждать новых запросов с данными для обработки. PHP, но не скрипт! Скрипт, который выполнялся, отдавая пользователю страницу, завершил работу. Все данные, которые были в нем — пропали. Именно поэтому, если какая-то переменная нужна при последующих вызовах скрипта, ее надо этому скрипту передать снова.
Очень качественная и подробная статья об основах веб-программирования находится на сайте PHPWIKI.RU. Обязательно прочитайте её.
Как передать переменную из PHP в JavaScript и обратно?
Начнем с того, что никакую переменную передать, конечно же, невозможно. Поскольку переменная — это часть программы. И из одной в другую передать её нельзя. Передать можно только значение переменной. Т.е. текст. То есть, различия между «передачей переменной в яваскрипт» и формированием html таблицы НЕТ НИКАКОГО.
Отсюда вывод — «Передать переменную» в Javascript очень легко. Особенно, повторюсь, если учесть, что никакой «передачи» не происходит. PHP просто напросто генерирует яваскрипт точно так же, как и всю остальную страницу, вместе со всеми переменными.
Точно так же, как вы выводите в браузер строку «Hello World, это Вася Пупкин!», выводится и любой яваскрипт, со всеми своими переменными.
Единственное условие — вы должны представлять себе тот яваскрипт, который хотите получить.
К примеру в PHP есть переменная $name=»Вася» , значение которой надо передать в яваскрипт, чтобы получить
Мы просто пишем
$name = «Вася» ;
?>
То есть, фактически, мы просто сформировали нашим PHP скриптом некий текст, который выглядит, как нужный нам код на яваскрипте. Или, с другой стороны, мы писали свой яваскрипт, в нужных местах вставляя вывод переменных из PHP.
Чтобы не сойти с ума от разнообразных кавычек, настоятельно рекомендуется яваскрипт выводить не весь с помощью echo, а именно так, как написано здесь — закрыв тег PHP и открывая их только там, где нужно вывести переменную.
Как передать переменную из яваскрипта в PHP?
Точно так же, как и любые другие данные — послав запрос на сервер.
Но надо четко понимать, что во время выполнения php скрипта получить что-либо из яваскрипта, разумеется, невозможно. Передать можно будет только при следующем запросе. И обрабатывать его будет уже другой PHP скрипт.
Если надо по событию onClick обратиться к базе данных, то следует помнить, что она находится на сервере. То есть, надо запрашивать сервер, который запустит PHP скрипт, который обратится к базе, получит от неё ответ и передаст его в браузер.
Все вышеизложенное не противоречит, разумеется, модной технологии асинхронного общения браузера с сервером. Все методы остались те же, просто общение с сервером выполняет не сам браузер, а программа на яваскрипте.
Подробнее можно почитать на ресурсах, посвященных яваскрипту. С точки зрения PHP запросы по технологии AJAX ничем не отличаются от обычных.
Способы общения браузера с сервером.
Способов, предоставляемых протоколом HTTP, немного. Это важная информация. Никаких других способов нет. На практике используются два:
GET — это когда данные передаются в адресной строке, например, когда пользователь жмет ссылку.
POST — когда он нажимает кнопку в форме.
Сформировали страницу со ссылкой или с формой методом GET — запрос придет GET-ом. Сформировали с формой, в которой указан метод POST — придет POST-ом.
Определить, какой способ следует применять, очень просто. Если форма служит для запроса некой информации, например — при поиске, то ее следует отправлять методом GET. Чтобы можно было обновлять страницу, можно было поставить закладку и или послать ссылку другу.
Если же в результате отправки формы данные записываются или изменяются на сервере, то следует их отправлять методом POST, причем обязательно после обработки формы надо перенаправить браузер методом GET. Так же, POST может понадобиться, если на сервер надо передать большой объём данных (у GET он сильно ограничен), а так же, если не следует «светить» передаваемые данные в адресной строке (при вводе логина и пароля, например). Но в любом случае, после обработки POST надо всегда перенаправлять браузер на какую-нибудь страницу, пусть ту же самую, но уже без данных формы, чтобы при обновлении страницы они не записывались повторно. Например:
header(«Location: http://».$_SERVER[‘HTTP_HOST’].$_SERVER[‘REQUEST_URI’]);
exit;
Самое главное, что надо помнить: сервер по своей инициативе обратиться к клиенту не может. Мы можем только по факту запроса выдать что-то браузеру — либо страницу, либо команду запросить другой ресурс.
Полезная информация может содержаться в различных НТТР заголовках.
Cookie — если сервер поставил куку, и она не устарела, то браузер отсылает ее вместе с каждым запросом.
HTTP authentication — если сервер запрашивал HTTP авторизацию, то браузер при каждом обращении шлет введенные логин и пароль.
РНР может посылать HTTP заголовки двумя командами — header() и setcookie() .
Просмотр обмена HTTP заголовками
Я очень рекомендую попрактиковаться с HTTP заголовками, посмотреть, как ими обмениваются сервер и клиент.
Для этого надо нажать в браузере F12 чтобы открыть Инструменты разработчика, выбьрать там вкладку Сеть и иам будут отображаться все запросы, которые браузер делает к серверу, причем каждый можно рассмотреть в подробностях.
Обязательно попрактикуйтесь в просмотре HTTP заголовков, которыми обменивается браузер с сервером. Это очень хорошая практика, а так же проверка — что шлет твой скрипт. Удобно при отладке установки кук или проблемах с сессиями.
Примерное представление о пришедших заголовках можно также получить, воспользовавшись функцией getallheaders() . Но следует учитывать, что работает она только если PHP собран, как модуль.
ОЧЕНЬ ВАЖНОЕ ЗАМЕЧАНИЕ
Из того факта, что PHP исполняется на сервере, и посылает результат своей работы браузеру, следует один простой, но очень важный вывод. Что PHP в принципе НЕ МОЖЕТ отобразить в браузере ничего такого, что невозможно было бы сделать средствами html.
ПРЕЖДЕ, чем что-то писать на PHP — попробуйте это сделать чистым HTML.
«Нажатие на Энтер» не переводит строку? А в html вы не пробовали таким образом строки переводить? Не получилось? Какая досада. Прочитайте, как в html сделать перевод строки и приходите снова.
PHP в результате своей работы формирует не картинку с текстами, как вы ее видите на экране монитора. PHP формирует HTML код. И этот код ЗНАЧИТЕЛЬНО отличается от того изображения, которое вы видите на экране. Если у вас что-то не получается, то надо всегда смотреть именно ИСХОДНЫЙ код страницы, а не то, как вам ее рисует браузер. Для просмотра надо нажать клавиши Ctrl-U.
Если у вас не работает яваскрипт, сформированный PHP скриптом, или html показывает не то, что вы хотите, то исправить эту проблему очень просто.
1. Сначала пишете нужный яваскрипт или html руками. Если у вас с этим проблемы — обратитесь в соответствующий форум — по яваскрипту или html. PHP тут не при чём.
2. Сравниваете с тем, что получено из PHP
3. Вносите исправления в PHP скрипт, чтобы текст, отдаваемый им, не отличался от написанного руками.
Браузер не умеет показывать файлы, в которые напихан одновременно и html картинки. Браузер умеет показывать только известные ему типы данных. В частности, это ИЛИ html ИЛИ картинка. Но не вместе. Если картинка — то ОДНА. Несколько картинок подряд браузер показывать не умеет. Браузер умеет показывать HTML, в котором прописаны ССЫЛКИ на несколько картинок.
Пожалуйста, прежде, чем изучать PHP — изучите хотя бы основы HTML! Прежде, чем что-то требовать от PHP — попробуйте сделать это на html.
Как начать программировать на PHP
Народная мудрость гласит: что написано на PHP, то не вырубишь топором. Именно поэтому язык остаётся одним из самых популярных в веб-разработке.


Иллюстрация: Оля Ежак для Skillbox Media

Виталий Чесноков
Выпускник факультета автоматизации и информатики МГГУ, исполнительный директор компании QSOFT.
Сегодня мы познакомимся с простым, но имеющим огромные возможности языком программирования — PHP. Узнаем, чем он привлекателен, на какую зарплату могут рассчитывать начинающие PHP-разработчики и как развиваться в веб-разработке. Для начинающих — на примерах покажем, как с нуля создать простой скрипт.
Содержание
- Что пишут на языке программирования PHP
- Почему PHP востребован и популярен в веб-разработке
- Сколько зарабатывают начинающие и опытные разработчики
- Что нужно знать и как новичку развиваться в профессии
- Какие книги почитать для самостоятельного изучения PHP
- Как написать простой скрипт и сайт
Что пишут на PHP
Язык программирования PHP применяют преимущественно в разработке сайтов и веб-приложений, а именно в бэкенде.
Все сайты, которые мы видим в интернете, состоят из двух частей: фронтенда и бэкенда. То, что видит пользователь, — анимация, слайдеры, выпадающие меню и прочее, — это фронтенд. Дизайнеры рисуют макет сайта, а разработчики превращают его в код на HTML, CSS и JavaScript.
На уровне бэкенда создаётся сама платформа, которая связывает сайт с внутренними серверными системами, обрабатывает пользовательские запросы, общается с базой данных и передаёт результаты во фронтенд. Именно для создания бэкенда и используется язык PHP.
Подробнее о разнице между этими двумя направлениями мы рассказали в статье «Frontend или backend — на примере создания сайтов». Она будет полезна тем, кто ещё не решил, с чего всё-таки начать учиться — с PHP, HTML, CSS или JavaScript.
Почему PHP продолжает быть востребованным и актуальным
Языку PHP уже более 20 лет. Он был разработан датчанином Расмусом Лердорфом в 1994 году как надстройка, которая показывала количество посещений его персональной странички. Тогда он назвал её просто — Personal Home Page.
Язык непрерывно эволюционирует. В 2004 году вышел PHP 5, который добился большой популярности у веб-разработчиков благодаря хорошей реализации ООП . В декабре 2015 года вышла седьмая версия, которая позволила создавать более быстрые программы. PHP 8 появился в ноябре 2020 года, а на 24 ноября 2022 года намечен выход версии 8.2.
Подробнее об основных свойствах и версиях языка программирования читайте в статье «Язык программирования PHP: от истоков до современности».
По данным W3Techs, доля веб-сайтов с бэкендом на PHP составляет около 80%. В первую очередь это связано с тем, что на нём написаны популярные CMS WordPress и Drupal. Кроме того, на PHP написаны «Фейсбук»*, «ВКонтакте», поисковая система Yahoo, «Википедия», немалая часть сервисов Google и отечественная CMS «1С-Битрикс».

PHP часто учат с нуля, так как у него очень низкий порог входа. Уже через месяц обучения вы будете писать небольшие сайты. А в дальнейшем, развив свои навыки, сможете работать над высоконагруженными системами для крупных компаний.
Несмотря на то что PHP уже десять лет пророчат скорую смерть, он остаётся самым востребованным языком программирования. Доля вакансий, в которых требуется знание PHP, составляет 24,6%. Примерно столько же занимает Java с 24,1%. А третий по популярности С# значительно отстаёт — 9,8%.

Рейтинг популярности языков программирования составлен на основе вакансий с русскоязычных карьерных сервисов. Скорее всего, в ближайшие пять лет соотношение не изменится.
Если вы не знаете, как с нуля самостоятельно выучить язык программирования, статья «Обучение PHP: советы и рекомендации для новичка» разложит всё по полочкам и поможет совершить как можно меньше ошибок.
Уровни зарплат в вакансиях PHP‑разработчиков
Согласно HeadHunter, зарплатный максимум PHP-программиста в России составляет 10 тысяч долларов. Если разделить зарплаты по уровням профессионального развития программиста, то цифры такие:
- Junior Developer — от 40 тысяч рублей в месяц.Только входит в профессию, умеет работать с легаси-кодом и писать простые скрипты, имеет коммерческий опыт программирования порядка 2–3 месяцев.
- Middle Developer — от 100 тысяч рублей в месяц.Может самостоятельно справиться с 90% поставленных задач и имеет опыт программирования от шести месяцев до года.
- Senior Developer — от 150 тысяч рублей в месяц.Может решить любую задачу на PHP, спроектировать решение, архитектуру, подобрать код и обучить junior- или middle-программиста выполнять эти задачи.
В 2022 году зарплаты PHP-разработчиков в России выросли сильнее, чем зарплаты программистов на всех других языках. Джунам чаще стали предлагать от 60 тысяч рублей в месяц, а сеньорам — от 400 тысяч.
Какими скиллами должен обладать веб‑разработчик
Рассмотрим технологии, которые должен освоить начинающий бэкенд-разработчик.
- HTML и CSS — языки разметки страницы. Чаще всех их используют фронтенд-разработчики, но вам нужно знать и понимать основы, так как придётся работать с готовой разметкой.
- JavaScript — код, выполняемый на стороне клиента (браузера). Он задаёт механику работы страницы. Необходимо уметь читать его и понимать, для чего нужен тот или иной его кусок.
- PHP — ядро сайта, скриптовый язык, работающий на уровне сервера и взаимодействующий с серверными структурами, на которых строится веб-проект.
- SQL — язык структурированных запросов, применяемый для управления базами данных, например, в СУБД MySQL.
- Linux — да, именно Linux. Windows не предназначена для использования в качестве операционной системы для сервера, хотя PHP может работать как в Windows, так и в Linux. В рамках обучения не обязательно использовать именно Linux, но важно знать, что в реальных проектах серверы обычно работают под этой операционной системой.
О том, как PHP-программисту развиваться в профессии, что нужно знать, уметь и как избежать ошибок, рассказал Олег Шабашов — разработчик в компании Searchanise.
Книги по PHP
Вот самые популярные и проверенные временем книги, в которых излагаются основы языка, работы с разметкой, принципы взаимодействия бэкенда и фронтенда и наиболее важные концепции веб-программирования:
- «PHP 7. В подлиннике», Дмитрий Котеров, Игорь Симдянов.
- «Изучаем PHP 7. Руководство по созданию интерактивных сайтов», Дэвид Скляр.
- «Создаём динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5», Робин Никсон.
- «PHP. Объекты, шаблоны и методики программирования», Мэтт Зандстра.
- «Разработка веб-приложений с помощью PHP и MySQL», Люк Веллинг, Лора Томсон.
Чтобы освоить профессию, недостаточно знать язык программирования — нужно научиться мыслить как программист и постоянно расширять кругозор. В этом вам помогут 16 лучших книг для программиста.
Создаём с нуля простой скрипт на PHP
Напишем небольшой сайт для поиска информации о количестве продуктов на складе. Мы не будем подробно вникать в синтаксис языка и в назначение операторов, наша задача — увидеть, как PHP взаимодействует с HTML. Но сначала установим компилятор и сервер, который будет обрабатывать запросы пользователей.
Устанавливаем PHP
Ниже приведены инструкции для операционных систем Windows, Linux и macOS.
На Windows
Скачать PHP на Windows можно с официального сайта, предварительно выбрав подходящую версию языка и операционную систему. Мы установим PHP 8.1 для 64-битной системы, для других версий процедура будет такой же.
Выбираем нужную версию PHP и вариант VS16×64 Thread Safe:

Теперь нужно распаковать архив в любое место на жёстком диске и запомнить путь до этой папки. Мы распакуем в папку C:\Program Files\php-8.1.0:

Дальше нужно указать системе, что мы установили PHP. Нажимаем правой кнопкой на «Этот компьютер» → «Свойства» → «Дополнительные параметры системы» → «Переменные среды»:

Выберите сверху и снизу Path → нажмите «Изменить». У вас откроется окно, в котором нужно нажать «Создать» в меню справа, а затем задать путь к папке PHP (в нашем случае это C:\Program Files\php-8.1.0). Затем нажмите «ОК»:

PHP установлен. Чтобы это проверить, открываем командную строку и пишем там команду php -v:

А чтобы запустить PHP-код, нужно создать текстовый файл с расширением .php и написать там какой-нибудь код. Например, такой:

Теперь заходим в папку с этим файлом, нажимаем правую кнопку мыши и выбираем пункт «Открыть окно PowerShell здесь».

В открывшемся окне пишем команду php test.php — в консоли должна вывестись наша строка:

На Linux
Перед установкой обновите систему, чтобы во время установки не возникло ошибок:

Открываем терминал: меню приложений → папка «Прочие» → «Терминал». Далее вводим команду:

Затем вставьте их снова в терминал, и установка brew будет окончена.
Наконец, устанавливаем сам PHP с помощью команды brew install php:

Чтобы проверить корректность установки, введите в терминале команду php -v:

В консоли должна вывестись версия языка, который вы только что установили.
Пишем скрипт
Писать код будем в текстовом редакторе Sublime Text 3, его можно скачать бесплатно на официальном сайте. Создадим папку Server в любом месте на жёстком диске и добавим в неё три файла: index.html, handler.php и styles.css.
Код нашей главной страницы index.html будет иметь следующий вид:
Напишем код для скрипта handler.php.

Здесь вводим в консоли команду php -S 127.0.0.1:8000:

Сервер запустился. Теперь открываем браузер и переходим на сайт: http://127.0.0.1:8000/. Готово — вы видите ваш сайт.
Введём в поле значение «Фрукты» и нажмём кнопку «Поиск».

Откроется главная страница index.html. Веб-сервер перебросил нас на выполнение скрипта handler.php, который, в свою очередь, отобразил на экране таблицу фруктов. Обратите внимание на адресную строку:

После вопросительного знака указывается имя параметра, в данном случае это название поля searchText, и через знак = указывается его введённое значение. Таких пар «имя = значение» может быть несколько, они должны отделяться друг от друга знаком &. Если вам нужно передать большой текст или конфиденциальные данные (например, логин и пароль), то не рекомендуем использовать get-запрос — для таких случаев есть метод post.
При дальнейшем изучении — например, в рамках курса «PHP-разработчик с нуля» от Skillbox — вы обязательно узнаете, как PHP взаимодействует с базой данных, что такое объектная модель, как выполнять асинхронные запросы без перезагрузки страницы и как строить архитектуру высоконагруженных систем.
Заключение
Ещё раз подчеркнём, что PHP — один из самых востребованных языков программирования на данный момент. И если вдруг вы до сих пор не решили, стоит начинать учить PHP или нет, можете быть уверены — он откроет для вас большие возможности. Сможете ли вы ими воспользоваться — зависит только от вас.
Читайте также:
- 13 инструментов крутого бэкенд-разработчика
- Тест. Сможете ли вы разговаривать с веб‑разработчиком на одном языке?
- Как отсортировать массив в PHP тринадцатью способами: инструкция с примерами
Объектно-ориентированное программирование — подход, при котором части программы представляются как объекты с набором свойств и присущих им методов.
Content Management System (система управления содержимым) — система для быстрого создания сайтов и управления контентом через удобный графический интерфейс.
PHP автоматически помещает в массив $GET все данные, которые были отправлены на сервер при get-запросе.