Что означает __FILE__?
У меня есть код Codeigniter index.php
Я понимаю, что
Если /
позиции строки в $system_folder
(в данном случае CIcore_1_7_1) false
,
и если существует функция realpath
AND (?) не false
,
$system_folder
присваивается (?) /$system_folder
.
else $system_folder
присваивается $system_folder
с заменой \\
на /
.
Q1. Что означает функция realpath?
Q2. Что это значит?
@realpath(dirname(__FILE__))
Q3. Я прав? Есть ли у меня какие-либо недоразумения?
Q4. Какая ситуация вам нужна?
str_replace("\\", "/", $system_folder)
$system_folder = "CIcore_1_7_1";
/*
|---------------------------------------------------------------
| SET THE SERVER PATH
|---------------------------------------------------------------
|
| Let attempt to determine the full-server path to the "system"
| folder in order to reduce the possibility of path problems.
| Note: We only attempt this if the user hasn't specified a
| full server path.
|
*/
if (strpos($system_folder, '/') === FALSE)
{
if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
{
$system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
}
}
else
{
// Swap directory separators to Unix style for consistency
$system_folder = str_replace("\\", "/", $system_folder);
}
Ответы
Ответ 1
-
Функция realpath()
дает вам путь к файловой системе с любыми символическими ссылками и перемещением каталогов (например,../../) разрешено. Функция dirname()
дает вам только каталог, а не файл внутри него.
-
__FILE__
- волшебная константа, которая дает вам путь файловой системы к текущему файлу .php(тот, который __FILE__
находится, а не тот, в который он включается, если он включен.
-
Звучит правильно.
-
Это нужно перевести из путей стиля Windows (\) в стиль Unix (/).
Ответ 2
__FILE__
- это просто имя текущего файла. realpath(dirname(__FILE__))
получает имя каталога, в котором находится файл, - в сущности, каталог, в котором установлено приложение. И @
- это очень глупый способ подавления ошибок PHP.
Ответ 3
__FILE__
Полный путь и имя файла файл. Если используется внутри include, будет возвращено имя включенного файла. Начиная с PHP 4.0.2, ФАЙЛ всегда содержит абсолютный путь с символические ссылки разрешены, тогда как в более старых В версиях он содержал относительный путь при некоторых обстоятельствах.
string dirname ( string $path )
Учитывая строку, содержащую путь к файлу, эта функция вернется имя каталога.
str_replace("\\", "/", $system_folder)
Вам нужно, чтобы это состояло в разделителях пути между различными операционными системами. Windows использует\и * nix использует /, вы держите с/.