Первая страница на 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? Надо что-то настраивать и устанавливать? Нет, пока мы обойдемся без этого и будем запускать программы с помощью сайта ideone.
Каким образом пишется программа? Любым, который нравится программисту. Так как код — это обычный текст, то можно использовать даже блокнот, однако делать так не стоит. Лучше скачать продвинутый редактор вроде Notepad++ для Windows (бесплатно) или Sublime Text (платно). Если тебе нужно еще больше возможностей, можно взять IDE (среду разработки), например Netbeans PHP (бесплатно) или PHPStorm (платно). Продвинутые редакторы подсвечивают код разными цветами, поддерживают автодополнение и содержат много других полезных функций. Для первых уроков хватит сайта ideone.com, но далее стоит скачать и освоить хотя бы Notepad++.
Ideone сломался и не открывается? Используй другие похожие сервисы: http://phptester.net/
http://codepad.org/
http://www.runphponline.com/
http://sandbox.onlinephpfunctions.com/
https://phpkiss.com/
https://repl.it/languages/php
http://phpfiddle.org/ (сложный).
Итак, заходи на сайт http://ideone.com/ . Там ты можешь набрать свой скрипт, нажать кнопку, и увидеть результат его работы. То, что ты туда вводишь, отправляется на их сервер, интерпретатор PHP исполняет этот код, а тебе выводится результат.
Первая программа
Давай не будем откладывать пpактику в долгий ящик, и сделаем задание:
W1. Следуя инструкциям на картинке, набери и выполни свою первую программу на PHP. Программа должна вывести какой-нибудь текст.

Если вместо результата ты видишь сообщения об ошибках, проверь свой код — может, ты кавычку не такую написал или где-то букву пропустил? Сообщения об ошибках выглядят обычно так:

Разберемся, как работает эта программа
В первой и последней строках есть код:
Это специальные (теги), чтобы отметить начало и конец блока PHP-кода. Интерпретатор выполняет лишь команды, заключенные внутри них. Если ты забудешь маркер в конце скрипта можно не писать — все равно же конец, но я написал, чтобы ты знал, что он есть.
Далее идет инструкция error_reporting(-1); . Эта команда включает отображение всех возможных предупреждений (без нее выводятся не все). Поскольку это уроки для начинающих, то, чем строже проверяется твой код, тем лучше для тебя — ошибки не останутся незамеченными. Пиши эту команду в начало всех своих скриптов!
Обрати внимание! После каждой инструкции идет точка с запятой. Её нельзя пропускать. Правила PHP разрешают писать инструкции либо подряд, в одну строчку, либо каждую на новой строке. Если писать все в одну строку, код станет нечитаемым и непонятным, потому пиши каждую инструкцию на отдельной строке.
Кроме этого, в нашей программе есть еще одна инструкция:
echo «Hello out there»;
Команда echo просто выводит то, что ей передали — в данном случае строку «Hello out there» . Строки в PHP надо заключать в одиночные или двойные кавычки (позже мы узнаем, в чем разница), чтобы отличать их от команд. Не перепутай кавычки с какими-то похожими символами, они (и одиночные, и двойные) расположены на клавише рядом с Enter:

Что еще умеет выводить команда echo?
С ее помощью можно выводить и считать числа, например, так (не забудь точку с запятой в конце строки):
echo (20 + 30) * 5 / 2;
Эта команда напечатает число 125 (можешь проверить: http://ideone.com/FF7QLs). В математических выражениях можно использовать скобки () , + , — , умножение (обозначается звездочкой * ), деление (обозначается слешем / , не перепутай с обратным слешем «\» или вертикальной чертой «|»). Дробные числа, например, «три с половиной», в программировании пишутся через точку (а не через запятую): 3.5 .
Еще один оператор, который можно использовать в выражениях — это % , и он обозначает не «процент», а остаток от деления чисел и используется так:
Если вдруг ты забыл, что такое остаток от деления: чтобы найти остаток от деления 15 на 6, мы вычитаем из числа 15 число 6, пока остаток не станет меньше 6. В данном случае, получается ответ 3 . Оператор % используется в таких случаях:
- Чтобы найти одну или несколько последних цифр числа, можно взять остаток от деления на 10, 100, 1000, и т.д: echo 17856 % 100 выведет 56 .
- Чтобы узнать четное число или нет, можно взять остаток от деления на 2: четные числа дают 0, а нечетные 1 в остатке.
Попробуй найти ошибку. Если никак-никак не можешь, то просто удали часть программы и попробуй снова, таким образом ты найдешь строку, в которой ошибка, и сможешь более внимательно ее изучить. Или сотри все и напиши заново. Также можно попробовать погуглить текст ошибки.
Надеюсь, ты понял, как работает echo . Математика закончилась, давай почитаем про сервера.
А как PHP используется на сайтах?
Если кратко: когда пользователь набирает у себя в браузере адрес сайта, например, http://example.com, браузер отправляет на сервер (на котором работает сайт) специальный HTTP-запрос и там запускается PHP-скрипт. Скрипт выводит текст на языке HTML, он отправляется в браузер и тот отображает его в виде красивой странички. Если подробнее — смотри картинку ниже.
Вообще, PHP скрипты можно использовать не только на сервере. Можно, например, скачать и установить PHP на компьютер и запускать скрипт в командной строке (это такое черное окошко, в котором можно набирать команды и которое в Windows можно вызвать, набрав Пуск→Выполнить→ cmd . А на маках и linux оно называется «терминал»).
Есть такие способы.
- Можно написать скрипт и запустить из командной строки. То есть, делаешь Пуск→Выполнить→cmd , набираешь хитрую команду вроде c:\php\php.exe d:\myscript.php и запускается интерпретатор PHP, который начинает читать и выполнять то, что записано в скрипте myscript.php. Естественно, предварительно ты должен скачать и установить сам PHP.
- Если у тебя есть доступ к серверу (VPS например), то ты можешь загрузить скрипт туда и запустить его там. По похожему принципу работает ideone: набранный тобой текст отправляется на сервер, где и выполняется.
- Если ты хочешь сделать сайт на основе PHP, то тут все чуть сложнее. Ты покупаешь домен, хостинг (детали — как-нибудь попозже), настраиваешь их и закачиваешь по SFTP или FTP свои скрипты на него (если мама пока не дает тебе денег на хостинг, ты можешь найти бесплатный хостинг или установить на своем компе сервер вроде WAMP или Denver, но тогда твой сайт будешь видеть только ты). После того, как ты закачал свои скрипты на хостинг (или запустил и настроил Denver), ты набираешь в браузере адрес веб-сервера. Твой браузер соединяется с сервером, отправляет ему запрос. Веб-сервер, получив запрос, находит твой скрипт и запускает его. Все, что выведет скрипт, сервер отправляет назад в браузер, и пользователь таким образом, видит результат работы скрипта. Скрипт (если он правильно написан) может вернуть пользователю картинку, простой текст, или специальный текст в , который отобразится в браузере в виде красивой страницы с картинками.
Как работают скрипты на сайте 
Где прочесть официальный мануал на русском по PHP?
В этом мануале полное описание правил языка, команд и функций от авторов PHP. Заучивать мануал наизусть, естественно, не надо, просто надо знать его адрес и в случае каких-то сомнений прояснять с его помощью непонятные моменты.
Куда вводить код? Что надо скачать? Читай первый урок.
Есть вопросы? Задай гуглу или автору.
Нравится урок? Лайкай, репости, приглашай друзей, пости котов и Канако, шли добра, решай задачи, помогай новичкам! Кнопок для лайка нет, кто хочет зарепостить, всегда может сделать это ручками.
Как связаться с автором? Я хочу переодеть его в платье школьницы и жениться на нем. Ящик codedokode (кот) gmail.com ждет ваших писем. А вконтактик и фейсбучек ждут ваших лайков. Но ответ на банальные вопросы лучше искать в Гугле или на stackoverflow.
Я решил задачку. Молодец, делай следующий урок
Ideone не работает!11 Ну так открой Гугл и найди сайты вроде https://repl.it/languages/php , http://phptester.net/ , http://sandbox.onlinephpfunctions.com/ , http://codepad.org/ или http://www.runphponline.com/ . Не ленись.
Почему так много рекламы? Всю рекламу на сайте ставит юкоз (бесплатный хостинг же), а не я.
На сайте установлена система Google Analytics (и еще несколько аналогичных систем от юкоза). Данные о твоем IP-адресе, посещаемых страницах, времени посещения отправляются в Google Corporation, США. Хочу знать, кто и зачем сюда заходит. Поверь, другие сайты делают точно так же. Все сайты пишут логи.
- Начало
-
- Переменные
- Условия и игра в кубики
- Циклы и айфон в кредит
- Массивы и рулетка
- Строки, хакеры и шифровки
- Функции и новый айпад
- Регулярные выражения
- Повторим?
- Бонусные задачки
- Пасты и ООП
- Учим сами
Что это?
Это сайт, где собраны простые уроки по языку программирования PHP. Даже если ты никогда не слышал слова «программирование» и учишься на филолога, ты можешь попробовать их сделать.
Скачивать и устанавливать тоже ничего не надо, делать уроки можно даже с айпада или ведроида.
Пишем код правильно — PHP: Объектно-ориентированный дизайн
Вооружившись знаниями, которые мы уже получили по ООП, давайте попробуем ответить на вопрос, как все же правильно писать и структурировать код в классовых языках.
В PHP считается, что набор принципов SOLID — это ответ на вопрос о том как правильно писать код. Но жизнь показывает, что знание этих принципов слабо помогает хорошей организации кода.
Возьмем принцип SRP (принцип единственной ответственности, S из SOLID). Он говорит следующее:
Должна быть ровно одна причина для изменения класса. Роберт Мартин.
Есть и другие формулировки, но это самая лаконичная. Что не так с этим принципом? Он очень общий. Звучит примерно как: нормально делай – нормально будет. Он не дает никаких формальных критериев, по которым можно понять, что в классе есть проблема. В статьях, посвященных этому принципу, всегда всё кажется логичным. Но только потому, что автор уже предложил разделение ответственностей. В реальной жизни всё было бы по-другому. Когда разных людей спрашиваешь об одних и тех же ситуациях, они дают совершенно разные, иногда противоположные ответы. По факту, всё сводится к некоторому внутреннему чутью конкретного программиста.
Возьмем для примера библиотеку для работы с датами и временем. С чего нужно начать ее проектирование?
Правильно начинать с вариантов использования. Представить себе как будто библиотека уже написана и мы пробуем ей воспользоваться (TDD толкает именно к этому, поэтому оно так мощно работает). Прежде чем мы перейдем к коду, попробуйте ответить на вопрос, так ли нужны классы и ООП для реализации этой библиотеки?
Получение текущего времени — это операция, у которой есть конец и начало. Нужны ли объекты для ее выражения? Нет, конечно. Для операций достаточно функций. Поэтому наша библиотека в самом простом случае может выглядеть так:
use function DateTime\getCurrentTime; use function DateTime\toISO; $currentTime = getcurrentTime(); echo toISO($currentTime); // => 2023-04-14T20:13:40.432+05:00Теперь, когда готов интерфейс библиотеки, можно приступать к ее реализации. Насколько важно, как она выполнена внутри? Откровенно говоря, не так важно. Внутренности останутся внутренностями, и никто про них не узнает, а их размер никогда не станет слишком большим (это всего лишь библиотека для работы с датами и временем). Это значит, что мы в любой момент можем их переписать. И делать это лучше не до, а после, когда накопится опыт поддержки и опыт использования. Только в этом случае появится настоящее понимание того, как лучше структурировать библиотеку внутри.
Генеральная идея звучит так: грамотная абстракция – ключ к успеху. Обозначьте границы, рассмотрите варианты использования и реализуйте как-нибудь.
Если бы мы работали в JavaScript, то пример выше и стал бы реальной библиотекой. Например, библиотека luxon для работы с датами и временем в JavaScript — это действительно набор функций:
import DateTime > from 'luxon'; console.log(DateTime.now().toISO()); // => 2023-04-14T20:13:40.432+05:00 console.log(DateTime.now().toFormat('MMMM dd, yyyy')); // => April 14, 2023Но если нужно, она позволяет создать объект, но только лишь с той целью, чтобы мы могли запомнить конфигурацию внутри для избежания дублирования:
import DateTime > from 'luxon'; const dateTime = new DateTime( zoneName: 'Asia/Singapore', valid: true >); console.log(dateTime.toISO()); // => 2023-04-14T20:13:40.442+05:00Но в PHP принято создавать классы. Во многом из-за автозагрузки и принятой модели работы. Поэтому перепишем наш интерфейс выше на объектный.
use DateTime; $dateTime = new DateTime(); $currentTime = $dateTime->getcurrentTime(); echo $currentTime->toISO(); // => 2023-04-14T20:13:40.442+05:00Какими принципами нужно руководствоваться, чтобы понять внутреннюю архитектуру и количество классов? Для старта достаточно здравого смысла. У нас есть сам клиент, который представлен объектом (но его состояние – это конфигурация, а не запросы и ответы), и есть результат функции получения времени.
Дальнейшее разбиение не нужно. Возможно, это не понадобится никогда. А если и понадобится, то сначала нужно почувствовать такую необходимость, а затем уже реализовывать ее, когда появится боль. Причем главное основание для такого разделения – это не абстрактная единственная ответственность, а выделение чистого кода, который не связан с побочными эффектами.
Внутри нашей библиотеки может быть код, который взаимодействует с системой, проверяет текущее время, а есть код, который работает с данными, приводит их в нормальный вид, чистит и как-то структурирует. В первую очередь, нужно отслеживать такой код и отделять его на уровне функций или методов. Любая операция, которая может быть чисто вычислительной, потенциальный кандидат на вынесение.
Ещё один пример, где анализ побочных эффектов позволяет понять, как поступить правильно. В материалах по ООП часто говорят про класс, который отвечает за генерацию отчёта. Предположим, что он работает так:
// Делать ли Reporter абстракцией данных (то есть объектом, описывающим конкретный отчет) // или нет, это большой вопрос. // По умолчанию так делать не стоит, иначе весь код превратится // в бесполезное (new Reporter('path/to/file'))->generate() $reporter = new Reporter(); $report = $reporter->generate('/path/to/report');На что стоит обратить внимание в первую очередь? На то, что этот класс одновременно выполняет как грязную работу (с побочными эффектами): читает файл с диска, так и чистую: обрабатывает данные для формирования отчета. Это не значит, что надо кидаться переписывать код, но это то, на что надо обращать внимание в первую очередь. Код выше, сложнее в тестировании и отладке, чем код с разделенными операциями по побочным эффектам. Кроме того, если вынести чтение файла наружу, то репортер станет значительно более универсальным. Он сможет работать с данными, которые лежат не только на диске, но и были загружены каким-то другим способом, например, по http через форму. После несложных манипуляций, получаем такой код:
$reporter = new Reporter(); $data = file_get_contents('/path/to/report'); $report = $reporter->generate($data); $report = $reporter->generate(file_get_contents('https://ru.hexlet.io/reporters/3'));Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Как написать PHP скрипт
В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.
Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества.
Количество просмотров этой статьи: 36 705.
В этой статье:
PHP — это серверный язык написания скриптов, предназначенный для создания интерактивных веб-страниц. Он стал очень популярен благодаря простоте использования, функциям интерактивности внутри веб-страниц и интеграции с HTML. Только представьте себе, что происходит в момент редактирования страницы даже на этом сайте. За этим процессом стоит множество, а возможно, даже сотни PHP скриптов, контролирующих изменение веб-страниц в зависимости от различных обстоятельств. В данной статье вы узнаете о том, как можно написать несколько очень простых PHP скриптов — так вы получите общее представление об основах работы PHP.
Часть 1 из 3:
Первые шаги с оператором Echo

- Для запуска «Блокнота» на любой версии Windows можно использовать сочетание клавиш ⊞ Win + R > Notepad.
- Запустить TextEdit на Mac OS можно через меню «Программы» > TextEdit.

- Введенный код должен выглядеть примерно так: .

- В «Блокноте», добавьте расширение .php к названию файла и заключите в кавычки. Таким образом, «Блокнот» уже не будет считать файл текстовым и не станет преобразовывать его в текстовый формат. Если не добавить кавычки, то имя файла автоматически станет следующим: hello world.php.txt. В качестве альтернативного варианта отключения автоматического добавления расширения .txt при сохранении в меню «Тип файла» можно выбрать значение “Все файлы (*.*)». В этом случае имя файла останется таким, каким вы его введете, и вам уже не нужно будет добавлять кавычки.
- В программе TextEdit не нужно добавлять кавычки в название файла при его сохранении. Вместо этого появится всплывающее окно с запросом на подтверждение того, что вы хотите сохранить файл с расширением .php.
- Убедитесь в том, что сохраняете файл в корневом каталоге документов вашего сервера. Обычно внутри папки сервера Apache на Windows этот каталог называется “htdocs”. Для Mac каталог по умолчанию расположен в /Library/Webserver/Documents, однако путь может быть скорректирован при настройке сервера.

- Если возникнет сообщение об ошибке, проверьте, что код в файле введен в точности как в примере. Убедитесь в том, что не забыли добавить точку с запятой в конце команды.
- Также необходимо проверить, что файл сохранен в правильном каталоге.
