- Php вывести путь от корня
- Как получить и вывести путь до корневой папки с примерами php
- Корневая папка, корень сайта с примерами
- Что такое корневая папка, путь до корневой!?
- Но где корневая папка находится с примером!?
- Итого вывод о корневой папке на примере:
- Как получить путь до корневой папки через php
- Как получить имя корневой папки через php?
- Получаем имя корневой папки php
- Как называется корневая папка.
- Как зайти в корневую папку?
- Как зайти в корневую папку вариант 1
- Как зайти в корневую папку вариант 2
- Примеры файлов находящихся в корневой папке
- Сообщение системы комментирования :
- Относительные и абсолютные пути в HTML и PHP
- Относительные и абсолютные пути в HTML (веб-адреса)
- Абсолютные пути
- Относительно корня сайта
- Относительно данной страницы
- Использование тега base
- Относительные и абсолютные пути в PHP
- Абсолютный путь в PHP
- Относительно стартового файла (базового)
- Что ещё надо знать
- Практика
- Абсолютные и относительные пути в PHP
- Чем отличаются пути в PHP и URL
- Ошибка №1: Подстановка физического пути в URL
- Ошибка №2: Подключение скриптов по URL
- Абсолютный путь в PHP
- Относительный путь в PHP
- Абсолютный путь в URL
- Относительный путь в URL
- Ошибка №1: относительные пути к стилям, скриптам и другим файлам
- Ошибка №2: Рекурсия в ссылках
- Текущий и родительский каталоги
Php вывести путь от корня
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12
Источник
Как получить и вывести путь до корневой папки с примерами php
Корневая папка, корень сайта с примерами
Что такое корневая папка, путь до корневой!?
Но где корневая папка находится с примером!?
Покажите мне на примере, где находится «корневая папка»!
Давайте разберем на пример!
Чтобы не быть голословным, приведу скриншот, как я соединяюсь с сервером это выглядит так:
Эту картинку, скриншот, можно увеличить в отдельном окне нажмите по нему! Но где корневая папка находится с примером!?
Это программа filezilla — рекомендую!
Что мы видим справа, в строке «Удаленный сайт» — это именно та папка, которая и называется корневой, в нашем случае это:
Итого вывод о корневой папке на примере:
Путь до корневой включая корневую папку это будет :
Путь до корневой без корневой папки это будет :
Как получить путь до корневой папки через php
Для того, чтобы получить путь до корневой папки через php будем использовать одно из значений глобальной переменной $_SERVER -> $_SERVER[‘DOCUMENT_ROOT’]
И разместим выше приведенный код php, который выйдет путь до корневой, вместе с названием корневой:
Как получить имя корневой папки через php?
Предположим, что вам/нам требуется узнать — имя корневой папки -как это сделать!?
Для этого есть «basename». Чтобы получить имя корневой папки — добавим «basename» в наш код
Получаем имя корневой папки php
Как называется корневая папка.
В зависимости от хостинга, корневая папка может называться по-разному. Как вариант названия корневой папки на серверах RuWeb.net может быть — public_html:
Как называется корневая папка.
На хостинге Reg.ru – корневая папка может называться : www .
Т.е – когда мы соединяемся по FTP, то попадаем в папку, где нужно зайти в папку www:
Как называется корневая папка.
А далее будет название вашего сайта – это и есть корневая папка.
Как называется корневая папка.
Как зайти в корневую папку?
Как зайти в корневую папку вариант 1
Которая сможет соединиться по ftp.
Где взять данные для ftp
Как зайти в корневую папку вариант 2
Папка, как я уже выше говорил, может называться по разному!
Если мы зайдем в папку WWW? то увидим в ней тот файл index.html:
Эту картинку, скриншот, можно увеличить в отдельном окне нажмите по нему! Как зайти в корневую папку вариант 2
Примеры файлов находящихся в корневой папке
Как я уже сказал ранее, что файл index.html , либо index.php должны находиться в корневой папке и для этого файла должен существовать путь(но могут быть и исключения. в том смысле, что хоть и файл существует, но может выдаваться ошибка. при попытке его открыть в адресной строке. по разным причинам. ):
Но другие файлы, по умолчанию ставятся в корневую папку , карта сайта «sitemap.html»:
Так же файл карты сайта в xml формате «sitemap.xml» находится по умолчанию в корневой папке:
Сообщение системы комментирования :
Форма пока доступна только админу. скоро все заработает. надеюсь.
Источник
Относительные и абсолютные пути в HTML и PHP
Относительные и абсолютные пути в HTML (веб-адреса)
Абсолютные пути
В данном случае всё очень просто, мы указываем прямой путь к файлу, лежащему на другом домене. Возможно указание сокращенного пути через использование двух слешей в начале без явного указания http или https и сервер сам подставит нужный протокол (расширение) согласно настройке сервера. Важно заметить, что данный вид является необходимым для перехода между сайтами:
Относительно корня сайта
В данном случае браузер берёт домен сайта и к нему подставляет указанную ссылку. В данном случае получится http://school-php.com/css/style.css. В случае с http, https не надо париться, так как будет браться в том виде, в котором сейчас открыта страница, то есть при http будет http. Так же очень удобно для переноса некого функционала между разными сайтами или же перенос сайта с одного домена на другой не трогая код. Приоритетный способ указания путей к страницам и файлам.
Относительно данной страницы
Менее востребованный способ, так как он берёт нынешнюю страницу и к её пути дописывает новый адрес. То есть находясь на странице http://school-php.com/trick ссылка на файл будет иметь вид: http://school-php.com/trick/css/style.css . Практически невозможен в использовании в случаях, когда мы используем ЧПУ.
Использование тега base
В данном случае вместо стандартной подставки домена к относительному пути будет подставлен путь из base. То есть мы получим файл, располагающийся:
Относительные и абсолютные пути в PHP
Всё очень просто, работая в файловой системе мы будем придерживаться правил работы с путями в PHP. Если же мы передаём команду в браузер клиента, то тут используются пути HTML. То есть в следующем примере у нас из PHP передаётся путь браузеру с страницей, на которую ему надо перейти. То, что переход между страницами браузер осуществил можно увидеть в адресной строке:
Итого, открываем страницу page1.php, а в адресной строке записано page2.php, а всё дело в том, что браузер СНАЧАЛА загрузил страницу page1.php, а потом получил информацию с переадресацией и ЗАГРУЗИЛ страницу вторую page2.php. В данном случае переадресация была на стороне клиента (браузера), а значит используем правила относящиеся к HTML (веб-адрес).
Абсолютный путь в PHP
Абсолютный путь в PHP воспринимается как абсолютный путь от директории, в которой установлен веб-сервер. Данный путь можно получить из:
Если взять в пример этот сервер, то его путь: /home/school/public_html/schoolphp , значит для того, чтобы указать полный путь к фотографии ‘/photo/img1.jpg’, необходимо указать такой путь:
Хочу заметить, что сайт может располагаться в поддиректории, то есть для:
может быть крайне затруднительно использование DOCUMENT_ROOT, ведь форум (как внешний скрипт) ещё не знает где будет размещаться на сайте. Справиться с данной проблемой можно несколькими способами, давайте парочку перечислим:
1) Создать в виде поддомена страницу.
2) Прописать абсолютный путь в конфиге в config.php , то есть:
Теперь можно без угрызения совести привязать весь сайт на Core::$ROOT, и если случайным образом необходимо поменять путь до подключаемого файла, то можно переопределить значение Core::$ROOT;
Относительно стартового файла (базового)
Во многих системах index.php есть единая точка входа, то есть открывается index.php, а уже из него подключаются другие файлы.
В данном случае будет подключен allpages.php по пути: /home/school/public_html/schoolphp/modules/allpages.php . Данный способ удобен тем, что если прописать include в файле allpages.php: include ‘./modules/module/page.php’;, то искать его будет всё равно относительно точки входа, а именно index.php:
Достаточно удобная реализация учесть, что мы чётко знаем структуру нашего приложения относительно корневого index.php. Даже если мы вызываем любой другой файл, а не index.php, то работать пути будут абсолютно точно так же. Вызвали мы dir.php , значит относительно файла dir.php и будут браться пути!
Что ещё надо знать
Я не мог не напомнить тем, кто забыл или же подсказать тем, кто не знает, что можно вернуться не только вглубь директорий, но и вверх (на папки назад), и синтаксис их достаточно прост:
В данном случае будет браться директория данного файла или корневого index.php, и возвращаться на 1 папку назад, там же будет искаться файл ‘file.php’.
DOCUMENT_ROOT не единственный вариант получить корневой путь сайта. Давайте взглянем в мануал: «Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера.» . Это значит, что в случаях, если в конфигурационном файле будет некорректно написан путь, то весь сайт не будет работать. Что делать? Можно писать админам и владельцам хостинга, на котором размещается сервер с надеждой, что они исправят свои недочёты. Или искать стабильную альтернативу, которой является __DIR__ , это абсолютный путь к данному файлу, где запущен код файлу. Допустим файл конфигурации у нас лежит в папке config, и чтобы используя __DIR__ не возвращаться каждый раз на 1 папку наверх записью __DIR__’/../’ мы смело можем __DIR__ записать в свою переменную, примером ниже я записал в свойство класса (урок №24, кто не дошел используйте обычную переменную):
Так же хотелось напомнить кое-что интересное и важное. Согласно безопасности веб-сервер запрещает перемещение по директориям выше корня сайта. То есть сайт находится по следующему пути: /home/school/public_html/schoolphp , но прочитать содержание папок /home, или /home/school будет недоступно.
Может ли PHP пользоваться путями HTML ? Да, в специальных функциях, для примера:
Практика
В своих старых проектах я использовал DOCUMENT_ROOT, сейчас перешел на относительные index.php пути ‘./папка/файл’.
Zend2, продукт от разработчиков PHP, один из самых сложных FrameWork на данный момент использует так же относительные пути с отличным синтаксисом от моего, то есть ‘папка/файл’.
Источник
Абсолютные и относительные пути в PHP
Пути к файлам — тема, которая обычно взрывает мозг новичкам. Но не волнуйся, сейчас мы всё расставим по полочкам.
Чем отличаются пути в PHP и URL
Когда мы смотрим любимый фильм или сериал, мы видим только готовый продукт.
А за кадром существует совсем другой, невидимый для нас мир: стилисты и гримёры, искусственные декорации, наложение спецэффектов и многое другое.
В PHP существует такое же разделение. С одной стороны — реальная файловая система с реальными папками и файлами, с другой — URL адреса, которые могут не иметь ничего общего с реальной файловой структурой.
Если ты видишь на каком-нибудь сайте страницу с URL /category/monitors — это совсем не значит, что на сайте есть скрипт /category/monitors/index.php .
Вполне вероятно, что и такой папки там тоже нет, а все URL адреса обрабатываются одним единственным PHP файлом.
И даже если в URL присутствует расширение файла, например /about.html — это тоже не говорит о существовании файла about.html . Может он есть, а может и нет.
Новички часто путают пути к реальным файлам с URL адресами. Сейчас я разберу пару таких ошибок, на примере которых можно будет прочувствовать разницу.
Ошибка №1: Подстановка физического пути в URL
Очень частая ошибка новичков — пытаться подставить в URL адрес ссылку на физический файл, вроде такого:
Это неправильно. Браузер не может видеть реальную файловую структуру сервера. Он не видит никаких дисков D, он видит только URL адреса.
Правильная ссылка выглядит так (разницу объясню чуть позже):
Ошибка №2: Подключение скриптов по URL
Иногда новички пытаются подключить физический файл по его URL:
Это неправильно. Во-первых, подключится не сам скрипт, а результат его работы. Во-вторых, подключать какие-то файлы через URL вообще идея очень опасная.
Абсолютный путь в PHP
Абсолютный путь — это полный путь к папке или файлу. Вот пара примеров для разных операционных систем:
- D:\OpenServer\domains\test.ru\index.php — для OpenServer на Windows
- /var/www/html/test.ru/index.php — для Ubuntu
Как видите, это полный путь от корня диска до конкретного файла или папки. Начинается со слеша или буквы диска (Windows).
Получить абсолютный путь скрипта можно с помощью магической константы __FILE__ :
Для получения абсолютного пути к папке, в которой находится скрипт, есть магическая константа __DIR__ :
Как этим пользоваться. Допустим, у нас в корне сайта лежат файлы index.php и config.php и мы хотим подключить второй в первый.
Если мы хотим подключить config.php по его абсолютному пути, есть два способа сделать это:
Поскольку константа __DIR__ не добавляет слеш после последней папки, мы указываем его вручную.
Относительный путь в PHP
У относительных путей в PHP есть один подвох — они могут строиться относительно не той папки, от которой мы ожидаем.
Дело в том, что когда мы подключаем скрипт по относительному пути require(‘config.php’); , PHP будет искать его по следующему алгоритму:
Сначала PHP попытается найти этот файл в папках, указанных в директиве include_path. Посмотреть, что указано в этой директиве конкретно у вас можно с помощью var_dump(get_include_path()); , папки разделяются символом ;
Если мы укажем путь к скрипту в таком виде: require(‘./config.php’); , то этот шаг будет пропущен.
Далее PHP попытается найти файл в папке текущего рабочего каталога.
Например, если мы в index.php подключили файл scripts/script.php, а в этом самом script.php уже пытаемся подключить файл по относительному пути, тогда поиск файла произойдёт и в папке scripts тоже.
Два последних пункта — главная проблема относительных путей. Мы не можем быть уверены, что будет подключен именно тот файл, который нам нужен.
Именно по этой причине я призываю тебя отказаться от использования относительных путей в PHP.
Кому-то из практикующих разработчиков эта фраза может не понравиться, но я считаю это единственным разумным решением.
Тем более нет ничего сложного в добавлении константы __DIR__ перед именем скрипта, что автоматически сделает путь абсолютным.
Абсолютный путь в URL
Абсолютный путь в URL означает путь от корня сайта. Корень сайта — это папка, которая содержит публичную часть сайта, т.е. доступную извне.
По-умолчанию корень сайта — это сама папка с сайтом, например site.ru , но зачастую её меняют на site.ru/public , чтобы часть скриптов нельзя было запустить по прямой ссылке в браузере.
Есть несколько способов указать абсолютный путь в URL:
- http://test.ru/article.php — полный путь с протоколом и доменом
- //test.ru/article.php — полный путь без протокола (берётся из текущей страницы). Содержит два слеша в начале.
- /article.php — полный путь без протокола и домена (берутся из текущей страницы). Содержит слеш в начале.
Второй и третий варианты удобны тем, что при миграции с http на https и обратно все ссылки автоматически сменят протокол, не нужно будет бегать по всему сайту и менять вручную.
Лично я практически всегда использую третий вариант, кроме случаев, когда нужно указать ссылку на другой поддомен (blog.site.ru, shop.site.ru и т.д.).
Относительный путь в URL
Относительные пути в URL указываются без слеша в начале ссылки, например:
Относительные пути в URL более предсказуемы, чем в PHP. Но я рекомендую использовать их только там, где это действительно необходимо.
Чаще всего их использование приводит к путанице. И вот пара типичных проблем, с которыми часто сталкиваются новички.
Ошибка №1: относительные пути к стилям, скриптам и другим файлам
Представим, что мы решили подключить стили к нашему сайту:
Разработчик указывает относительный URL style.css и видит, что всё работает. По крайней мере, на главной странице.
Но при переходе по любой ссылке, например /products/15 , стили перестают работать.
А причина в том, что относительный путь строится от текущего URL-адреса, а значит в нашем примере он из style.css превратился в /products/15/style.css .
Ошибка №2: Рекурсия в ссылках
При использовании относительных путей есть риск случайно создать на сайте бесконечные ссылки. Вот один из таких способов:
Для работы данного кода должна быть настроена единая точка входа.
Проблема в том, что при каждом клике по этой ссылке текущий URL будет не перезаписываться, а дополняться, в итоге через несколько кликов мы получим что-то вроде http://test.ru/articles/articles/articles/articles/about .
Текущий и родительский каталоги
Помимо указания конкретных папок, мы также можем добавить в путь указание «перейти на папку выше», например:
В коде выше мы подключим файл config.php, который находится не в текущей папке, а в родительской. С абсолютными путями это тоже работает:
И с URL-адресами тоже:
Также мы можем указать ссылку на текущий каталог, что бывает актуально в некоторых операционных системах:
Источник