Перейти к содержимому

MOAB

- - - - -

Помогите с подключением файлов через php


  • Войдите, чтобы ответить
В теме одно сообщение

#1 bor10811

bor10811

    Новенький

  • Новичок
  • Pip
  • 9 сообщений

Отправлено 29 Сентябрь 2017 - 20:39

Подключаю файлы через php с помощью include. В корне документа задан относительный путь, всё работает нормально. Однако в папках абсолютный путь почему-то не срабатывает:
include "http://karandash-konversii.ru/headblock.html"

При этом в такой форме:
include "../headblock.html"
Файлы подключаются, но я нигде не видел, чтобы в характеристиках include говорилось, что абсолютный путь надо заменять на две точки.

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

Страница, о которой идёт речь: http://karandash-konversii.ru/

#2 Spinne

Spinne

    Зануда™

  • Основатель
  • PipPipPipPipPip
  • 2 007 сообщений
3 422
  • Излесу, вестимо

Отправлено 29 Сентябрь 2017 - 22:22

Все не просто, а очень просто. Для всех функций php, работающих с файлами, пути привязаны не к DOCUMENT_ROOT (т.е. корневой директории сайта), а к файловой системе сервера. Адресация локальных файлов "через протокол HTTP" – вообще грань абсурда. Так что для правильного пути к файлу нужно одно из двух: либо относительная адресация (не всегда надежно, порой легко ошибиться), либо абсолютный путь от корня файловой системы сервера. Чаще всего разработчики еще до загрузки файла конфигурации делают привязку к абсолютному пути от корня сервера.

Предположим, у вас в корневой директории сайта лежит директория /lib, где вы храните подгружаемые файлы. И тогда путь к ней "привязывается" вот так:
// берем из окружения абсолютный путь от корня файловой системы сервера до корня сайта
// и помещаем в константу DOCROOT
define("DOCROOT", $_SERVER["DOCUMENT_ROOT"]);
// Добавляем путь от корня сайта и помещаем в переменную $include_path
$include_path = DOCROOT. '/lib/';

// И далее пользуемся  этой переменной
include ($include_path. 'headblock.html');


Ник не менял, подпись поменяю позже. Ваш Зануда. Он же AHP-net, но это уже там



Похожие темы


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных



© 2019 SMO&SEO форум «WEBIMHO» — продвижение и создание сайтов, интернет-маркетинг

По вопросам рекламы на форуме и цены на рекламу
Все материалы SEO форума разрешены к копированию только с установкой гиперактивной ссылки на webimho.ru,
тем, кто этого не сделает, мы оторвем руки и ноги и поменяем местами,
а когда выйдем из тюрьмы, опять оторвем и опять поменяем.


Россия, г. Москва

Мы в соцсетях: twitter | вконтакте | facebook | livejournal