dirname и realpath() каква е разликата и DIRECTORY_SEPARATOR

eddyy93

Registered
Каква е разликата между тези 2 - те?
Гледам, че някой framework - ове, ползват и 2 - те по този начин:

PHP:
define('BASE_PATH', dirname(realpath(__FILE__)));

А други по този начин:

PHP:
define('BASE_PATH', dirname(__FILE__));


Като ги тествам ми вади едни и същи стойности, каква е точно логиката, да се пишат и 2 те заедно.


Също така и за DIRECTORY_SEPARATOR и " / ". Кое е по добре в случая? Windows четял и 2 те " \ " и " / " (за уина и за линукса). Защо е по добре да се ползва готовата константа?
 
Код:
realpath() expands all symbolic links and resolves references to '/./', '/../' and extra '/' characters in the input path and return the canonicalized absolute pathname.


dirname
Код:
Given a string containing the path of a file or directory, this function will return the parent directory's path.
 
realpath казва пълния (и точен) път до даден файл. Например realpath('/../php/php.exe') на моя компютър ще върне C:\EasyPHP\php\php.exe ако скрипта ми е в C:\EasyPHP\www\

dirname маха името на файла от пътя (връща само пътя до директорията, в която е файла) - dirname('C:\EasyPHP\php\php.exe') => 'C:\EasyPHP\php'

__FILE__ е константа, която е различна за всеки php файл и дава пътя до файла.

Тоест dirname(__FILE__) дава пътя до директорията, в която се намира файла с кода ти.

DIRECTORY_SEPARATOR е \ за windows и / за всичко останало. Не виждам особен смисъл да се ползва. Според мен е по-прегледно всичко да си ползва '/'. Windows приема и двата варианта, дори и смесени - C:/EasyPHP\www/file.php
 

Back
Горе