Все для начинающего вебмастера

Подключение файлов в PHP

В PHP существует возможность подключения PHP (и не только) файлов в другие. Благодаря этому мы можем разделить большой скрипт или вёрстку сайта на несколько частей.

Функция include

Представим, что у нас в корне сайта лежат файлы index.php и config.php. И мы хотим в первый файл подключить второй. Это можно сделать так:

Функция include подключает содержимое скрипта config.php, как если бы код этого скрипта находился в самом index.php.

Результат запуска скрипта index.php:

В данном примере мы указали относительный путь к скрипту, т.е. путь относительно вызывающего скрипта. Эту тему мы подробно разберём на уроке Абсолютные и относительные пути в PHP.

Функция require

Функция require() подключает файл точно также, как и include() .

Разница в том, что при невозможности подключения файла (файл отсутствует или недостаточно прав) функция include() покажет ошибку и продолжит работу, а require() покажет ошибку и остановит выполнение скрипта.

Функции include_once и require_once

При использовании функций с приставкой _once вы запрещаете повторное подключение скрипта. При попытке повторного подключения PHP сгенерирует ошибку.

После этой ошибки include_once() продолжит работу, а require_once() остановит скрипт.

Получение данных из подключаемого скрипта

Подключаемый скрипт может передать подключающему скрипту какие-либо данные с помощью оператора return :

 'www.programulin.ru', 'site_name' => 'Програмулин' ];

В коде выше скрипт config.php возвращает массив, который мы в файле index.php принимаем и сохраняем в переменную $config.

Область видимости подключаемых файлов

Все переменные, функции и т.п., объявленные в подключаемом файле, будут видны в исходном. При этом переменные подключаются в текущую область видимости. Т.е. если подключить файл внутри функции, то переменные будут видны только в ней:

 // Ошибка, переменная $config видна только внутри функции get_config echo $config['site_name'];

Источник

Как подключать PHP-файлы и зачем это вообще нужно

Приветствую читателей блога! У вас наверняка уже есть небольшой опыт в кодинге на PHP. Возможно, вы уже разобрались с использованием переменных и базовых конструкций этого языка, а значит, логика вашего приложения увеличивается, как и количества кода.

Конечно, пока вся программа уменьшается в десяток строк, разбивать её на части не нужно. Но вы уже понимаете, что так будет не всегда: авторизация, отправка писем, взаимодействия с базой данных и т.д. – все это приведет к увеличению кода приложения.

Вы спросите: «Ну и что с того? Разве плохо писать всю логику в одном файле?». Стопроцентного ответа на этот вопрос нет, но мой опыт говорит, что код приложения, написанный в одном файле:

  • при дополнении и внесении новой логики приводит к частым ошибкам
  • требует большего времени для изучения другим разработчиком
  • через месяц-два при необходимости маленькой правки потребует у тебя гораздо больше времени на понимание кода, чем на саму правку.
Читайте также:  $NameSite?>

Если этих доводов недостаточно – советую почитать книгу Роберта Мартина «Чистый код». А пока продолжу.

Представим, что у нас есть 2 файла: `index.php` и `1.php`, лежащих в одной директории.

 html lang="ru"> head> meta charset="UTF-8"> title>Document/title> /head> body> /body> /html>

Задача: вывести содержимое файла «1.php» в контейнере `body`, при запуске файла «index.php». Решить её можно разными способами, и в этом посте мы рассмотрим некоторые из них. Подключение PHP возможно с помощью разных инструкций:

Самый простой пример решения с `include`:

 html lang="ru"> head> meta charset="UTF-8"> title>Document/title> /head> body>   include '1.php'; ?> /body> /html>

Результат запуска в браузере:

Как подключить PHP из другой директории

Теперь изменим условия. Переместим файл `1.php` в папку с названием `test`, которую создадим в директории с файлом `index.php`.

Поскольку подключаемый файл находится в другой директории, для его подключения следует указать сначала папку, в которой он находится, а потом и сам файл.

Далее изменим код в `index.php`.

Строка, что мы указываем после инструкции `include`, это путь к файлу. Он может быть относительный (к файлу, где используется подключение) и абсолютным (от корня файловой системы). В приложениях рекомендуются использовать относительные пути.

Между папками, файлами и другими папками в пути устанавливаются разделители. Универсальный разделитель для различных операционных систем – `/`.

Если в папке `test` у нас была бы еще папка `lot`, в которой лежал файл `1.php`, то относительный путь выглядел бы так: ‘test/lot/1.php’.

С путями немного разобрались – возвращаемся к инструкциям. Произведем изменения в файлах. Файл «index.php»:

 html lang="ru"> head> meta charset="UTF-8"> title>Document/title> /head> body>   $say = 'Hello world!'; include 'test/1.php'; echo $test; echo " End/p>"; ?> /body> /html>
 echo " "; $test = 'TEst connect';

Посмотрим на изменение в выводе:

Как работает подключение кода PHP

Интерпретатор php «читает» код сверху вниз и слева направо, как мы читаем книги на русском языке. На исполнение от сервера ему указывается файл «index.php», а значит, чтение начинается с него. Дойдя до строчки с `include ‘test/1.php’`, интерпретатор пытается найти и исполнить это файл так, как будто он является частью «index.php».

Перед подключением и исполнением файла «1.php» уже существует переменная `$say`, в которой содержится ‘Hello world!’. При выполнении файла «1.php», содержимое этой переменной выводится на экран и создается переменная `$test`, которая в свою очередь и выводится на экран в файле `index.php`.

Если описанное выше непонятно, советую немного поиграться с файлами `1.php` и `index.php` создавая и выводя в них переменные.

Различия `include`, `include_once`, `require`, `require_once`

Переименуем файл «1.php»в файл «2.php» и обратимся к «index.php»:

В итоге получаем ошибку. Но обратите внимание на то, что после вывода ошибки код PHP все равно продолжил выполнение и вывел `End`. Заменим `include` на `require` и запустим на выполнение.

В итоге видим похожие ошибки, но не видим вывода `End` в конце: после ошибки код php прекратил свою работу.

Разница между `include` и `require` заключается в том, что при подключении файла PHP первая инструкция позволяет продолжить выполнения скрипта, если не найден файл, а `require` завершает его, выводя фатальную ошибку.

Теперь рассмотрим отличие инструкций `require` и `require_once`. Внесем небольшие правки в наши файлы. Вот новый «index.php»:

 html lang="ru"> head> meta charset="UTF-8"> title>Document/title> /head> body>   $say = 'Hello world!'; require 'test/2.php'; require 'test/2.php'; require 'test/2.php'; require 'test/2.php'; echo " End/p>"; ?> /body> /html>

Как видно на скриншоте, с помощью `require` мы успешно подключили файл несколько раз. Снова внесем изменение в файлы. Новый файл «index.php»:

 html lang="ru"> head> meta charset="UTF-8"> title>Document/title> /head> body>   require 'test/2.php'; require 'test/2.php'; require 'test/2.php'; require 'test/2.php'; echo "p>End/p>"; ?> /body> /html>

И новый файл «2.php» — на этот раз объявим там функцию:

 echo '

Im included

'
; function sayHello($say) echo " "; >

Второе подключение файла «2.php» приводит к ошибке, как раз потому что в этом файле происходит объявление функции. А в PHP-скрипте двух одинаковых функций быть не должно.

Теперь заменим все `require` на `require_once` и запустим снова:

Ура, работает! Но обратим внимание на то, что файл подключился только один раз.

Теперь вновь переименуем файл `2.php` в `1.php` и запустим «index.php».

`Require_once`, так же как и `require` завершает выполнение скрипта, если не найден файл указанный для подключения. Заменим `require_once` на `include_once`:

Ошибок стало больше, но код по-прежнему отработал до конца: end в конце картинки это подтверждает. Внесем правки в «index.php»:

 html lang="ru"> head> meta charset="UTF-8"> title>Document/title> /head> body>   include_once 'test/1.php'; include_once 'test/1.php'; include_once 'test/1.php'; include_once 'test/1.php'; echo " End/p>"; ?> /body> /html>

Подведём итоги

Чтобы подключить PHP-файлы, можно воспользоваться четырьмя похожими инструкциями — `include` и `include_once`, `require` и `require_once`.

  • Разница между `include` и `require`: при отсутствии файла последняя выводит фатальную ошибку, а первая — нет.
  • Разница между `include` и `include_once` (а также `require` и `require_once` соответственно): инструкции с “once” проверяют перед подключением, был ли этот файл подключен ранее. Если он подключался, повторного подключения не произойдет.
  • Разница между `require_once` и `include_once`: думаю, она понятна из двух предыдущих пунктов 🙂

Если вы хотите освоить PHP во всей его полноте — приглашаем вас на курсы PHP-разработки в GeekBrains. За шесть месяцев вы изучите не только работу с PHP, но и другие важные в профессии технологии — фреймворк Laravel, базы данных MS SQL и Postgre SQL, основы HTML/CSS и ООП. А также сможете пройти полноценную онлайн-стажировку!

Источник

Как правильно подключить JS- и PHP-скрипты к вашему сайту?

Сегодня я расскажу вам, как осуществляется подключение разных типов скриптов к вашему сайту. Это своего рода основа основ, и написать эту статью я должен был одной из первых. Потому – начнем.

Подключение JS-скриптов (файлы с расширением *.js) к сайту

JavaScript помогает нам во многих моментах повысить функциональность сайта. Будь то стилизация форм или, например, какая-нибудь техническая сторона вопроса.

Подключение JavaScript’а осуществляется двумя способами:

1. Первый – это непосредственно вставка кода в ваш сайт с помощью тегов:

2. Второй – с помощью файла:

Где «https://www.pandoge.com/main.js» – путь до файла скрипта. Такой вариант рекомендуется писать для файлов на удаленном (внешнем) сервере. Если же файл находится на вашем сайте, то можно просто указать относительный путь:

Это удобно, если вы вдруг захотите сменить домен или перевести сайт на другой протокол.

Что касается места подключения, то все скрипты рекомендуется подключать в секции HEAD, перед закрывающим ее тегом. Например:

     

Их также можно подключить в секции BODY. Например, все библиотеки рекомендуется подключать в секции HEAD, тогда как все счетчики, слайдеры, галереи и прочие скрипты – в секции BODY, также перед закрывающим тегом.

Подключение PHP-скриптов (файлы с расширением *.php) к сайту

Подключение PHP-скриптов осуществляется уже тремя способами:

1. Первый – это та же вставка кода в саму страницу сайта (обратите внимание, что если вы имеете страницу с расширением *.html – вам необходимо сменить расширение на *.php) с помощью тегов:

2. С помощью файла (в таком случае подключение можно осуществлять и на странице с *.html расширением):

Но для работы этого способа в файл .htaccess, который находится в корне вашего сайта, в самый верх, необходимо добавить эти строки:

 RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html .phtml

Если такого файла нет на хостинге — создайте его через любой текстовый редактор.

3. Третье – с помощью JS-скрипта. В этом случае вы также можете получить результат выполненного PHP-скрипта на сервере.

Реализация будет следующая:

Где «.result» – это класс, куда будут грузиться данные, а «/main.php», соответственно, адрес до PHP-скрипта.

Если вы грузите данные с другого сервера, то поддержка PHP на вашем сервере не обязательна. Не забывайте подключить к вашему сайту библиотеку jQuery.

Здесь правила абсолютно те же: полный адрес к файлу, если он находится на внешнем сервере, относительный – если на вашем.

Обратите внимание! Если вы хотите подключить PHP-скрипт к вашему сайту, то на сервере должна быть поддержка PHP. О том, есть ли у вас такая возможность – узнайте у своего хостинг-провайдера.

Если вы осуществляете подключение скриптов первый раз – попробуйте подключить скрипты из архива, который прикреплен в конце статьи. Если в обоих случаях вы получили сообщение «Hello World!» – значит, вы все сделали правильно.

Источник

Оцените статью