Co oznacza plik?

Mam następujący kod z Codeigniter index.php

Moje zrozumienie jest takie,

Jeśli / pozycji ciągu w $system_folder (w tym przypadku Formula_1_7_1) jest false, a jeśli realpath funkcja istnieje i (?) nie jest false, $system_folder jest przypisany do (?) /$system_folder. else $system_folder jest przypisane do $system_folder z zastąpieniem \\ na /.

Q1. Co oznacza funkcja realpath?

Q2. Co to znaczy?

@realpath(dirname(__FILE__))

Q3. Mam rację? Czy mam jakieś nieporozumienie?

Q4. Jakiej sytuacji potrzebujesz?

str_replace("\\", "/", $system_folder)

$system_folder = "CIcore_1_7_1";

/*
|---------------------------------------------------------------
| SET THE SERVER PATH
|---------------------------------------------------------------
|
| Let's 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); 
}
Author: Mike Lyons, 2009-10-02

3 answers

  1. Na realpath() funkcja podaje ścieżkę systemu plików, z dowolnymi dowiązaniami symbolicznymi i przejściem do katalogów (np. ../../ ) rozwiązany. Na dirname() funkcja daje tylko katalog, A Nie plik w nim.

  2. __FILE__ jest magiczną stałą, która daje ścieżkę systemu plików do bieżącego .plik php (ten, w którym znajduje się __FILE__, a nie ten, przez który jest dołączany, jeśli jest to include.

  3. Brzmi dobrze.

  4. To jest przetłumaczenie ze ścieżek stylu Windows (\) na styl Uniksa (/).

 39
Author: Greg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-01 21:06:19

__FILE__ jest po prostu nazwą bieżącego pliku. realpath(dirname(__FILE__)) pobiera nazwę katalogu, w którym znajduje się plik -- w istocie, katalogu, w którym aplikacja jest zainstalowana. I @ jest niezwykle głupim sposobem PHP na tłumienie błędów.

 9
Author: hobbs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-01 21:01:43
__FILE__

Pełna ścieżka i nazwa pliku plik. W przypadku użycia wewnątrz include, zwracana jest nazwa dołączonego pliku. Od PHP 4.0.2, plik zawsze zawiera ścieżkę bezwzględną z dowiązania symboliczne rozwiązane natomiast w starszych wersje zawierały ścieżkę względną w pewnych okolicznościach.


string dirname  ( string $path  )

Biorąc pod uwagę łańcuch zawierający ścieżkę do pliku, funkcja zwróci nazwa katalogu.


str_replace("\\", "/", $system_folder)

You need this to bądź polegający na separatorach ścieżek między różnymi systemami operacyjnymi. Windows używa \ I * nix używa /, zachowujesz/.

 5
Author: eKek0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-01 21:02:48