- Как в PHP получить корневую директорию?
- PHP — Корень сайта
- Комментарии: 13
- Популярное
- What is a root directory in PHP?
- What is meant by root directory?
- What is a root directory of a website?
- Where is my php directory?
- How can I get root URL in php?
- How do I set the root directory?
- What is file system root?
- Is C the root directory?
- What is root folder in HTML?
- About me
Как в PHP получить корневую директорию?
PHP в отличие от HTML видит файловую систему глубже. В HTML корнем сайта является некоторая директория, которая определяется настройками веб-сервера. Т.е. это определённый каталог в файловой системе, начиная с которого размещаются документы (файлы) этого сайта.
Например, в HTML путь к изображению image1.jpg , которое расположено в каталоге images относительно корня сайта будет иметь следующий вид:
В php слэш ( / ) обозначает корень файловой системы, а не корень сайта.
Т.е. такая запись в php будет означать, что файл image1.jpg расположен в директории images , которая находится в корне файловой системы.
Чтобы к этому файлу добраться из php необходимо будет проделать более длинный путь. Т.е. сначала добраться до корня сайта (некоторой директории), а потом от него до нужного файла.
Например, на хостинге (в зависимости от хостинга путь до корня сайта может отличаться) путь к файлу будет следующим:
/home/m/mysiteru/public_html/images/image1.jpg
Например, путь к файлу сайта, который работает на веб-сервере Apache (сборка Денвер) в операционной системе Windows будет следующим:
Z:/home/mysite.ru/www/images/image1.jpg
PHP — Корень сайта
Получить корневую папку сайта в скрипте php можно используя предопределённый (глобальный) массив $_SERVER :
Чтобы посмотреть путь к корневому каталогу достаточно создать любой php файл и поместить в него следующее содержимое:
Абсолютный путь обычно применяют тогда, когда вы не знаете местоположение файлов относительно скрипта, в котором вы их используете.
Например, скопируем файл image1.jpg , расположенный в корне сайта, в каталог images ( /assets/images — путь от корня сайта):
Комментарии: 13
Александр, приветствую! Подскажите пожалуйста как нормально подключить другие страницы сайта через php.
1) У меня стоит Open Server. Имеем следующую структуру сайта: itchief.ru/assets/uploadify/7/8/d/78d7690f02d327fe833be71e96372301.png.
Проблема состоит в том, что не понимаю как указывать путь… Если я подключаю в index.php навигацию (nav.php) то все работает без проблем . А если я в папке keys захожу в папку content и там уже в файл key.php т.е получается путь keys/content/key.php. И в этом файле пытаюсь подключить навигацию «nav.php»
указывая путь то ни чего не подключается и пишется след.ошибка (Warning: include(/nav.php): failed to open stream: No such file or directory ) Якобы указан неправильно путь… Но в то же самое время css подключается просто указав путь /сss/style.css то же самое и с другими файлами которые находятся в других папках, java, img, достаточно указать слэш и путь к ним. Не понимаю как сделать так чтобы все подключалось через слэш… Либо как это вообще все подключают?
Привет! Тут нужно либо с использованием $_SERVER[‘DOCUMENT_ROOT’] или dirname.
Клиент и сервер — это разные вещи.
На сервере нужно указывать полный путь к файлу. Т.е. если вы в командной строке Windows напишите следующую строчку, то он же файл не найдёт (не откроет его в notepad):
notepad c:/openserver/domains/babr.ru/nav.php
Александр в очередной раз Спасибо! Но если честно не совсем понял.
1) Это получается каждый раз из key.php и key2.php и т.д. чтобы подключить nav.php мне надо прописывать
2) Можете более подробно подсказать в чем разница между этими 2 способами и какой предпочтительнее?
3) Почему к примеру в том же самом key.php остальные файлы (index.php key1.php подключаются без проблем без $_SERVER[‘DOCUMENT_ROOT’]? Ведь по уровню вложенности к примеру nav.php и index.php находятся на одном уровне, а некоторые файлы и ниже, но все равно подключаются просто указывая путь путь относительно корня сайта: /index.php и /keys/content/key1.php. т.е не могу понять почему одни файлы в этом же документе подключаются без проблем а nav.php нужно именно путь указывать относительно сервера?
Пути к файлам можно задавать в абсолютном и относительном форматах.
$_SERVER[‘DOCUMENT_ROOT’] используется для создания абсолютного пути к файлу. Он всегда возвращает путь до корня сайта. У вас оно вернёт: «c:/openserver/domains/babr.ru». Далее, нужно ещё дополнительно дописать путь от него к файлу. Например, для «nav.php», вам нужно добавить ещё «/nav.php». В результате абсолютный путь к файлу «nav.php» будет иметь следующий вид:
$_SERVER['DOCUMENT_ROOT'] . '/nav.php'
2 способ – это использование относительного пути. Оно строится относительно текущего расположения файла. Если файл, который вы хотите включить расположен в том же каталоге, то относительный путь к нему будет просто его имя:
dirname(dirname(dirname(__FILE__)) ) . '/nav.php'
В этой конструкции __FILE__ — это полное имя данного файла, а dirname — это функция, которая возвращает имя родительского каталога для указанного пути.
Ещё можно так:
include(dirname(dirname(__DIR__)) . '/nav.php');
Где __DIR__ — это директория данного файла.
Тут нет лучшего способа, они просто разные.
Александр ясно, Благодарю! Но не убивайте меня сразу, а лучше потихоньку!) С относительными и абсолютными путями я разобрался, но как же 3 вопрос.
Почему к примеру в том же самом key.php остальные файлы (index.php key1.php подключаются без проблем без $_SERVER[‘DOCUMENT_ROOT’]? Хотя я везде использую абсолютный путь?
Т.е. Почему в файле key.php я указываю абсолютный путь относительно корня сайта /index.php и keys/content/key.php. и все подключается без проблем. А когда в этом же файле указываю точно так же абсолютный путь для nav.php он ломается? /nav.php. Этот момент не до понял. Ведь знак «/» указывает что я строю путь от корня сайта… Но почему я должен писать $_SERVER[‘DOCUMENT_ROOT’] возвращать путь до корня сайта, если могу указать /nav.php. Хоть убей не пойму…
Александр, не гоните беса на меня) Просто реально не выезжаю.
Когда мы путь указываем на сервере (в php), и он начинается со слэша («/»), то это означает, что он начинается с корня файловой системы, а не с корня сайта. В Linux нет дисков, и начальный узел — это корневой системный каталог («/»). В Windows пути строятся от дисков.
На, PHP, если «index.php» и «nav.php» расположены в корне сайта, то из «index.php» вы не сможете выполнить include файла «nav.php» используя «/», т.к. в данном случае это будет считаться от корня файловой системы, а не сайта.
В PHP, как раз $_SERVER[‘DOCUMENT_ROOT’] – это и есть способ получить корень сайта.
Но когда, вы подключаете стили, скрипты, указываете пути к php файлам (например, для форм) на сервере (в php) это обрабатываться не будет – это же для браузера. Здесь уже URL начинающийся со «/» будет указывать на корень сайта. Но это клиент, а не сервер.
Огромное Спасибо! Доходчиво объяснили, теперь понял!) Александр так уточнение: Когда я меняю расширение файла с html на php, то нужно ли в начале кода так же менять его?
Пожалуйста! Doctype предназначен для указания типа создаваемого документа. Если вы создаёте HTML5 документ, то необходимо указывать это:
Мы же с помощью php создаём не какой-то другой тип документа, а HTML5. Такого документа, как php вообще нет. php — это просто сценарий, который в данном случае мы используем для формирования html кода или всего html документа.
Здравствуйте, Александр. Не знаю куда написать вопрос по PHP на вашем ресурсе (функция со строкой), поэтому пишу здесь в поисках ответа!
Вот следующая запись:
$money1 = 68.75; $money2 = 54.35; $money = $money1 + $money2; echo $money; echo '\n'; $formatted = sprintf('%01.2f', $money); echo $formatted;
Какую роль выполняет 01 в стоке «%01.2f», $money?
Исходя из общей записи %[argnum$][flags][width][.precision]specifier. .2f — это .precision (количество цифр после десятичной запятой)!
— 01 — не может выступать argnum$ (отсутствует $)
— flags может содержать 0 (дополняет число нулями, но должен быть аргумент d) — отпадает вариант
— 1 — может выступать width (минимальное количество выводимых символов) — но не соответствует при описанных далее манипуляциях!
Так вот, убираю 01 со строки «%01.2f», $money, или меняю его на любое другое двузначное/однозначное число — результат отображения остается неизменным: 123.1 123.10
Сглаживается впечатления, что никакой смысловой нагрузки не несет 01 в строке «%01.2f», $money, но, скорее всего — это ошибочное представление (пример взят с учебника по РНР)!
Внесите ясность, пожалуйста, в данную ситуацию.
СПАСИБО!
Здравствуйте!
В форматной строке «%01.2f»:
0 – флаг (дополняет число слева нулями);
1 – ширина, определяющее минимальное количество символов, которое будет напечатано;
.2 – точность для спецификатора f (числа с плавающей точкой).
Чтобы увидеть эффект от флага 0 нужно в качестве ширины, например, установить значение 8.
В этом случае будет выведено: 00123.10
Спасибо, Александр! Ранее я не обратил внимание на эти ноли слева — потому смысл оставался непонятным!
Сейчас, все стало на свои места!
Популярное
- 1. Bootstrap 3 — Navbar (горизонтальное меню) 367.3K
- 2. Модальное окно Bootstrap для сайта 366.9K
- 3. Слайдер для сайта на чистом CSS и JavaScript 361.3K
- 4. Маска ввода для HTML элемента input 352.6K
- 5. CSS медиа-запросы (media queries) 325K
- 6. Форма обратной связи для сайта с отправкой на почту 322.2K
- 7. Bootstrap — Carousel (карусель) 296.2K
What is a root directory in PHP?
In order to get the root directory path, you can use _DIR_ or dirname(). echo dirname(__FILE__); Both the above syntaxes will return the same result.
What is meant by root directory?
In a computer file system, and primarily used in the Unix and Unix-like operating systems, the root directory is the first or top-most directory in a hierarchy. It can be likened to the trunk of a tree, as the starting point where all branches originate from.
What is a root directory of a website?
The root directory of your website holds the content that loads when visitors type your domain name in a browser. For example, you need to put your index file in your website’s root directory for visitors to see your site. Website-related applications might also need to know your website’s root directory.
Where is my php directory?
How To Check PHP Version And PHP Install Path On Linux And…
- Check PHP Install Path On Linux. The whereis command returns the executable file path. …
- Check PHP Install Path On Windows. …
- Check Current PHP Version. …
- Use phpinfo() Function To Get PHP Version & PHP Install Path.
How can I get root URL in php?
- $root = (! …
- $parsedUrl = parse_url(‘http://localhost/some/folder/containing/something/here/or/there’); $root = $parsedUrl[‘scheme’] . …
- $url = ‘http://user:pass@localhost:80/some/folder/containing/something/here/or/there’; $parsedUrl = parse_url($url); $root = strstr($url, $parsedUrl[‘path’], true) . ‘/’;
How do I set the root directory?
While all file systems have a root directory, it may be labeled differently depending on the operating system. For example, in Windows, the default root directory is C:. On Unix systems and in OS X, the root directory is typically labeled simply / (a single forward slash).
What is file system root?
The root file system is the top of the hierarchical file tree. It contains the files and directories critical for system operation, including the device directory and programs for booting the system.
Is C the root directory?
The root directory, or root folder, describes the uppermost folder on a hard drive partition. If your business computer contains a single partition, this partition will be the “C” drive and contains many system files.
What is root folder in HTML?
Root directory of a website
The root directory, also known as the document root, web root, or site root directory, is the publicly accessible base folder of a website. This folder contains the index file (index. php, index. html or default. html) and is often named public_html, htdocs, www or wwwroot.
About me
Hey! My name is Ken and this is my blog about web programming languages, how to understand them and how to use them. This is my first blog on programming languages. Here I post useful information and answers to frequently asked questions from novice programmers.
ATTENTION TO RIGHT HOLDERS! All materials are posted on the site strictly for informational and educational purposes! If you believe that the posting of any material infringes your copyright, be sure to contact us through the contact form and your material will be removed!