Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
rusldv
7 лет назад

PHP - Урок 6. Конструкции print и echo. Кавычки одинарные и двойные и конкатенция строк.

PHP - Урок 6. Конструкции print и echo. Кавычки одинарные и двойные и конкатенация строк



Данные приходят на сервер вместе с запросом от браузера.
Они либо запрашивают файл. Либо передают помимо всего пользовательские данные - но все равно что-то запрашивают у сервера :D

Путь к файлу как раз-таки указывается после названия сайта в адресной строке.

Например наш сайт thesite.loc выглядит в запросе серверу так:
http://thesite.loc
А вот наш положенный файл test.php запрашивать нужно так:
http://thesite.loc/test.php
То есть мы его добавляем к адресу сайта после слэша ('/').
Как его находит сервер я рассказал в статье PHP - Как работает сервер и PHP - Урок 4. PHP - интерпретатор.

Однако ж, смотрите, довольно часто мы переходим по ссылкам, которые не содержат явного указания на файл. То есть например http://thesite.loc нашего сайта, сообщает в запросе GET только название сайта. (если быть более точным название сайта передается серверу в заголовке запроса, предварительно специальная программа DNS у вашего провайдера, через которого мы выходим в Интернет, читает имя сайта, и передает нам IP сервера - компьютера где этот сайт находится. Затем к нему запрос отправляется по маршрутизаторам.

Так как же программа-сервер узнает какой файл отправить в ответ клиенту, если его в запросе нет.
Очень просто. Сервер можно настроить, так чтобы, если в запросе нет никакой информации о нужном файле, так чтобы он отправлял в таком случае файл по умолчанию.

Есть даже заранее установленные в настройках серверной программы названия таких файлов. Обычно это
index.html, index.htm и если вместе с сервером установлен php-интерпретатор - index.php

Если мы будем обращаться к адресу http://thesite.com то сервер будет искать в папке www (корневой для нашего данного сайта) файл index.php (если его там нет то поищет еще index.html и index.htm) и затем передаст его нам. Если формат php то предварительно пропустит через php-интерпретатор.

И мы получим ответ как-будто бы мы запросили http://thesite.loc/index.php

Что дальше делает php

Итак когда мы запрашиваем файл в формате php у сервера он их пропускает предварительно через интерпретатор php. А он что-то делает с кодом внутри <?php ... ?>. То есть он выполняет команды написанные там и вместо них подставляет данные - результат работы этих команд.
В основном результат работы этих команд хранится в памаяти выделенной для процесса интерпретатора (буфере). Но мы их можем вывести в любой момент. С помощью специальных конструкций языка - print либо echo.

Это именно конструкции, а не функции. Хотя могут быть описаны и как функции например `echo "hello"; и echo("hello") будут работать одинаково.
Но они не будут задействовать сам интерпретатор для каких-либо вычислений. Они тупо выведут данные в поток клиенту. То есть в запрашиваемый их браузер.

Однако иногда приходится работать интерпретатору - это случай подстановки переменных в вывод.

Кавычки и конструкция echo

Когда мы выводим текст через echo или print мы должны его заключить в кавычки. Либо в '...' либо в "..."
Проще говоря это нужно, чтобы интерпретатор их смог отличить от цифр и собрать в единую строку - литерал.
Но между этими двума кавычками есть разница.

Одинарные кавычки

То что вы выводите в одинарных кавычках echo 'Hello? world'; передается обратно в браузер без изменений.
То есть как вы напишите так и будет :)
Это полезно, особенно когда вы пишите переменные php но не не хотите, чтобы они обрабатывался php
Чтобы было более понятно читаем далее))

<?php
    $name = 'Руслан';
    $num = 48;
    echo 'Привет, $name, ты живешь в квартире номер $num Мы Anonimous - жди нас.';

Двойные кавычки

В двойных кавычках мы можем вставлять переменные, а также управляющие символы. Например:

<?php
    $name = 'Руслан';
    $num = 48;
    echo "Привет, $name, ты живешь в квартире номер $num! Мы Anonimous - жди нас.";

То есть, если бы мы написали вышележащий код в одинарных кавычках, то бы echo его вернула бы в браузер клиента так как там написано в этих кавычках.
Но в двойных кавычках php-интерпретатор заменить переменные $name и $num на Руслан и 48 соответственно.

Конкатенация

Кстати говоря то же самое можно было бы написать как то так

<?php
    $name = 'Руслан';
    $num = 48;
    echo 'Привет, '.$name.', ты живешь в квартире номер '.$num!.' Мы Anonimous - жди нас.";

На выводе - то же самое что и в примере с двойными кавычками. Однако здесь переменные не входят в литерал строки.
Когда это может быть полезно. Достаточно часто. Особенно при работе с SQL-запросами, до которых мы вскоре доберемся.
Те же самые эксплоиты и SQL-инъекции, которые проверяют безопасность сайта/сервера. Пишутся как раз таки в одинарных кавычках. Но эта уже история про безопасность которая в данный курс не входит.


Итак мы изучили ввод и вывод. Значит уже близок тот урок, где начнем изучать операторы, изменяющие данные. Если есть вопросы или советы по курсу - не забывайте писать комментарии.
45
223.536 GOLOS
На Golos с November 2016
Комментарии (0)
Сортировать по:
Сначала старые