Читать интересную книгу PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 2 3 4 5 6 7 8 9 10 ... 23
налево или направо. Мы не можем взять предметы в месте chat и затем отвезти их в место ufo. Если автомобиль выезжает из позиции старт в направлении ufo и по прибытии в ufo обнаружится, что нужные предметы для этого места отсутствуют, то все. Мы оказались у разбитого корыта. Вернуться назад за нужными предметами мы не можем. Движение одностороннее.

Рис. 6 Абсолютный путь – двустороннее движение,

где СТАРТ – корень сайта.

При абсолютном же пути движение двустороннее и мы всегда можем вернуться обратно на старт. Отправится в ufo. Узнать, что там необходимо. Сделать крюк допустим до места chat и вернуться обратно уже с полным пакетом всего что надо. Если и сейчас что-то забыли, не вопрос. Можно опять съездить куда надо и вернуться. Т.е. абсолютный путь дает спокойное и предсказуемое поведение в точках назначения.

Поэтому использовать полностью относительные пути в PHP я бы не советовал вообще. Целесообразнее определить с помощью PHP корневую директорию веб-сервера, а местоположения файлов указывать относительно ее.

Значит остается абсолютный путь. Применительно к решению данной задачи есть два варианта по созданию абсолютных путей:

Вариант А: использовать константу __DIR__.

__DIR__ константа для получения абсолютного пути к папке, это директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слеш, за исключением корневой директории[6].

Применительно к нашей задаче данная константа не совсем удобна, зато будет работать везде. Неудобство будет заключаться в том, что в первую очередь нас интересует путь к корню сайта, а поскольку мы не знаем заранее его название, то придется использовать обходной способ. И этот способ будет работать только когда мы будем знать названия папок из которых будут вызываться include. Заключается способ в том, что на тех страницах, где будут вызываться include прописываются папки для поиска загружаемых файлов. Это делается при помощи функции set_include_path которая задает значение настройки конфигурации include_path на время выполнения скрипта.

Конфигурационная директива include_path указывает список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделенных двоеточием в Unix или точкой с запятой в Windows[7].

При поиске подключаемых файлов PHP отдельно рассматривает каждое значение в include_path. Он проверяет первый путь, если файл в нем не найден, то он переходит к следующему, и так до тех пор, пока не найдет подключаемый файл, либо вернет E_WARNING или E_ERROR.

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

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

Листинг А. Получение пути к корню сайта. Размещается вначале страницы.

<?php

$p = explode('ufo', __DIR__);

echo $p[0];

set_include_path(get_include_path() . PATH_SEPARATOR . $p[0]);

где ufo имя папки из которой вызывается файл. В примере указано ufo, но по факту любое.

Для сайта news и папки ufo в константе __DIR__ будет такой путь:

C:OSPaneldomainsnewsufo

При помощи функции explode этот путь делится на две части. Разделителем будет служить название каталога, в данном примере ufo. В итоге в $p[0] будет содержаться левая часть:

C:OSPaneldomainsnews

т.е. путь к корню сайта.

И теперь можно подключать файлы из любых каталогов следующим образом:

include "chat/нужный скрипт"; или include "ufo/нужный скрипт";. Мне кажется это довольно неудобно, хотя и будет работать везде. Поэтому рассмотрим вариант Б.

Вариант Б: использовать $_SERVER['DOCUMENT_ROOT'].

'DOCUMENT_ROOT' это директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера[mnl]. Значение этой переменной дает путь к корню сайта. И подключение файла будет выглядеть так:

include $_SERVER['DOCUMENT_ROOT'].”/нужный файл”;

Как мне кажется, вариант Б более удобен, поэтому в дальнейшем все подключения будут делаться через $_SERVER['DOCUMENT_ROOT'].

3. Создание тестового сайта

Ну, что ж приступим. Для упрощения разработки модуля на этапе разработки, воспользуемся не готовым шаблоном, а создадим свой простейший сайт одностраничник. Для этого переходим в папку с установленным «Open Server». По умолчанию она находится по пути: C:OSPanel. Далее переходим в папку «domains» и создаем там тестовый отладочный сайт. Для этого создадим в папке «domains» подпапку. Название выбирайте какое хотите. Название этой папки будет именем вашего сайта. Я назвал её news. Затем открываем редактор и создаем в нем текстовый документ со следующим кодом:

Листинг 2. index.html Путь: news/index.html

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Test site</title>

</head>

<body>

<p>Значимость этих проблем настолько очевидна, что начало повседневной работы по формированию позиции способствует подготовке и реализации новых предложений!

Значимость этих проблем настолько очевидна, что повышение уровня гражданского сознания влечет за собой процесс внедрения и модернизации модели развития. Практический опыт показывает, что рамки и место обучения кадров способствует повышению актуальности соответствующих условий активизации.</p>

</body>

</html>

Сохраняем файл в папке news как index.html. Теперь у нас есть стартовая страница тестового сайта. В тегах <p> содержится обычный текст заглушка. Стили к данной странице применять не будем.

Запускаем «Open Server». В разделе мои сайты должен появиться новый сайт news. Запускаем его. Если все сделано правильно, в браузере должен появиться сайт «news» и на нем текст заглушка.

Так как дальнейшая работа предполагает работу с PHP, создаем в редакторе в этой же папке «news» файл .htaccess со следующим содержимым

Листинг 3. .htaccess Путь: news/.htaccess

#Включаем обработку php в html файлах

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

#Устанавливаем кодировку по умолчанию

AddDefaultCharset utf-8

Сохраняем в корне сайта, т.е. в папке «news».

При сохранении в меню «Файл» выбрать «Сохранить как».

В выпадающем списке «Тип файла» выбрать «Все файлы».

Ввести в качестве имени .htaccess.

Нажать на кнопку «Сохранить».

Файл .htaccess (англ. hypertext access) используется для настройки веб-сервера на котором хранится сайт пользователя. А меняя настройку веб-сервера, мы влияем на работу сайта. В данном случае серверу дается команда обрабатывать PHP код в HTML документах и устанавливать по умолчанию кодировку «UTF-8»

Создаем папку модуля комментариев. Ее можно создать в любом месте, но разместить в корне сайта. Назовем папку «chat». В этой папке создадим две подпапки:

admin – для файлов администрирования;

say – для файлов управления комментариями.

В этой же папке chat создадим файл style.css для того чтобы настраивать внешний вид элементов модуля. Пока этот файл будет пустой. Должно получиться как на рис. 7, 8.

1 2 3 4 5 6 7 8 9 10 ... 23
На этом сайте Вы можете читать книги онлайн бесплатно русская версия PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько.
Книги, аналогичгные PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько

Оставить комментарий