- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть файл site.ru/include/menu.php
Его надо заинклудить в site.ru/folder/info/main.php
Как прописать инклуд в файле такого уровня вложенности?
Пробовал:
и не работает никак...пишет что файл не найден.
<?include "../../include/menu.php"?>
попробуй так :)
Лучше использовать абсолютный путь. Тогда код инклюда будет одинаков в независимости, где находится файл в который инклюдят.
<?php include ($_SERVER["DOCUMENT_ROOT"]."/include/menu.php"); ?> - путь определяется автоматически и его не придется корректировать даже при смене хостинга
<?php include ("/home/login/www/donem.ru/public_html/include/menu.php"); ?> - путь от корня сервера (точно можно узнать у хостера или глянуть в SSH)
Можете создать конфиг файл и в нем прописать одни раз путь от корня сервера
<?php
$put = “/home/login/www/donem.ru/public_html/”;
?>
А в скриптах уже писать следующее
<?php
include ($put."include/menu.php");
?>
И т.п. уже на Ваш вкус
вещи ../.. – по моему от лукавого, потому что если понадобится вставить ваше меню в несколько файлов в разных директориях придется переделывать и т.п.
Только всегда нужно ставить не относительные пути, а абсолютные.
p.s.: опередили :)
Только всегда нужно ставить не относительные пути, а абсолютные.
,ольше соглашусь именно с этим методом :)
а вот прошлый пост из серии Joomla style programming.
bearman добавил 18.06.2008 в 12:53
и еще вопрос, зачем использовать абсолютные пути всегда ? особенно которые в файле прописываются это пипец, а не программирование)
а вот прошлый пост из серии Joomla style programming.
Прошлый пост - там где один раз в конфиге задается константа put = “/home/login/www/donem.ru/public_html/”; а потом просто юзается где надо конкатенация - из серии "думаю головой когда програмлю".
А включение где попало dirname(__FILE__) . '/../../include/menu.php'); это конечно крутой хак-стайл, вот только когда у вас инклуды или меню переедет в другую папку матов будет...
Да и считать постоянно на сколько уровней вверх ломится - занятие для кодеров, а не программистов.
"The downside here is that this expression is dynamic - executed at run-time. Meaning it’s slower and less toolable and also makes a bad habit of putting dynamic things into include (which is not a problem here, since it’s “static dynamic” thing, but still a bad habit)."
хахаха, ну ладно. меня все равно не переубедить. вопрос удобства. на самом деле ни скорость, ни трехуровневость ни мешают использовать оба метода.
<?php include ($_SERVER["DOCUMENT_ROOT"]."/include/menu.php"); ?> - путь определяется автоматически и его не придется корректировать даже при смене хостинга
Увы не пашет...
и еще вопрос, зачем использовать абсолютные пути всегда ?
Это нужно для того, чтоб PHP интерпритатор не горел в адском огне. Ну, и, конечно, скорость + удобство.
Прошлый пост - там где один раз в конфиге задается константа put = “/home/login/www/donem.ru/public_html/”; а потом просто юзается где надо конкатенация - из серии "думаю головой когда програмлю".
Этот прошлый пост из рода: "перееду на другой хостинг - буду переписывать всю CMS".
А включение где попало dirname(__FILE__) . '/../../include/menu.php'); это конечно крутой хак-стайл, вот только когда у вас инклуды или меню переедет в другую папку матов будет...
Покажите мне хоть один способ, при котором не будет матов, если файл "переедет"! (за исключением способа занесения имени файла в переменную и её дальнейшее использование)
Да и считать постоянно на сколько уровней вверх ломится - занятие для кодеров, а не программистов.
Объясните своё понимание терминов "кодер" и "программист".
хахаха, ну ладно. меня все равно не переубедить.
Ну и зря. Отвратительнейшая позиция.
-----
Самое верное решение, это написать в начале index.php следующую строку (аля/aka DataLife Engine):
а потом использовать её префиксом во всех вызовах функций include()/include_once()/require()/require_once(). Только тут главное не забыть, что путь будет без конечного слеша.
еще проще инклудить по умному, а не расчеты делать глупые и бессмысленные. у меня позиия самая правильная, ибо я уверен в своей точке зрения. да и вообще это разгвор на пустом месте "как инклудить файл", тема схожая с "как написать хелло ворд на пхп"
:-D
еще проще инклудить по умному, а не расчеты делать глупые и бессмысленные. у меня позиия самая правильная, ибо я уверен в своей точке зрения. да и вообще это разгвор на пустом месте "как инклудить файл", тема схожая с "как написать хелло ворд на пхп"
Чем хорош все-таки и страшен php - порог вхождения очень низок. А вот вырастают потом - очень немногие...
У меня позиция еще правильнее, поскольку я не просто уверен в своей точке зрения, а могу и пытаюсь аргументированно ее обьяснить. О том, что не один год опыта за плечами буду скромно молчать 🚬
Писать надо сразу оптимально. Тогда поддерживать и развивать будет потом гораздо проще и быстрее.
Покажите мне хоть один способ, при котором не будет матов, если файл "переедет"! (за исключением способа занесения имени файла в переменную и её дальнейшее использование)
Занесение пути к / в константу и всегда работа только от /. :)
Имхо: кодер - человек который бездумно занимается именно кодированием, написанием кода. Программист - мыслит более широко, алгоритмами, структурами, взаимодействием процессов и т.д.
Короче, кодер пишет "лишь бы работало", а программист - "оптимально". ;)