- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Как записать инклюд с помощью относительного адреса, так что бы он вызывался со страниц всех уровней вложенности одинаково.
Пример:
страница www.sait.ru/papka1/papka2/stranica1.html вызывает инклюд www.sait.ru/papka1/include1.php, и страница www.sait.ru/stranica2.html вызывает тот же инклюд.
Вызываем наш инклюд с помощью относительных адресов:
со страницы 1 - <? include("../include1.php"); ?> (код вызова 1)
со страницы 2 - <? include("papka1/include1.php"); ?> (код вызова 2)
Есть ли возможность сделать строки кодов вызова одинаковыми? То есть по сути сделать их абсолютными, но не равными <? include("www.sait.ru/papka1/include1.php"); ?>
Нужно делать инклюд полным адреом от корневого каталога. Полный путь можно узнать у саппорта хостинга.
например,
/var/www/site.ru/papka1/include.php
/www/papka1/include.inc
В таком духе =)
ой... как запутанно...
может проще абсолютный путь на сервере указать - типа /var/www/username/data/www/sait.ru/papka1/include1.php ?
узнать путь можно не только у саппорта. если разрешена команда system, то system("pwd");
Нужно делать инклюд полным адреом от корневого каталога. Полный путь можно узнать у саппорта хостинга.
например,
/var/www/site.ru/papka1/include.php
/www/papka1/include.inc
В таком духе =)
Спасибо :)
ой... как запутанно...
может проще абсолютный путь на сервере указать - типа /var/www/username/data/www/sait.ru/papka1/include1.php ?
А что будет, если сайт переедет на совершенно другой хостинг?
Абсолютный путь к каталогу можно узнать создав php фаил с следующим содержанием
Сам путь можно вынести в отдельную переменную в конфиг файле. При переезде нужно будет заменить только значение переменной и все.
$_SERVER[DOCUMENT_ROOT]
и не надо ничего спрашивать у хостера и менять при переезде.
Можно указывать абсолютный путь с помощью $_SERVER['DOCUMENT_ROOT']. Как вариант.
require_once $_SERVER['DOCUMENT_ROOT'] . '/papka1/include1.php';
Но его использование несет ряд проблем. Так, с DOCUMENT_ROOT, вы не сможете повторно развернуть систему вне непосредственно корневой директории.
Нормальным решением мне кажется использование одного инициализирующего файла, который подключается через dirname(__FILE__), и set_include_path() с __autoload()
Спасибо всем. Проблема с инклюдами решена.
Еще вопрос, если позволите. Я бы хотел также решить проблему и с изображениями которые находятся в вызываемых инклюдах. Как мне для них прописать адрес таким способом?
а точно так же.
<img src="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>/papka-s-kartinkami/gopa.jpg" /> :-)