Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)
Verfügbar seit PHP 4.3.0. Strichpunkt bei Windows Systemen, Doppelpunkt bei UNIX basierten.
SCANDIR_SORT_ASCENDING (integer)
Verfügbar seit PHP 5.4.0.
SCANDIR_SORT_DESCENDING (integer)
Verfügbar seit PHP 5.4.0.
SCANDIR_SORT_NONE (integer)
Verfügbar seit PHP 5.4.0.
add a note add a note

User Contributed Notes 5 notes

up
15
Anonymous
1 year ago
In PHP 5.6 you can make a variadic function.

<?php
/**
* Builds a file path with the appropriate directory separator.
* @param string $segments,... unlimited number of path segments
* @return string Path
*/
function file_build_path(...$segments) {
    return
join(DIRECTORY_SEPARATOR, $segments);
}

file_build_path("home", "alice", "Documents", "example.txt");
?>

In earlier PHP versions you can use func_get_args.

<?php
function file_build_path() {
    return
join(DIRECTORY_SEPARATOR, func_get_args($segments));
}

file_build_path("home", "alice", "Documents", "example.txt");
?>
up
15
Anonymous
1 year ago
For my part I'll continue to use this constant because it seems more future safe and flexible, even if Windows installations currently convert the paths magically. Not that syntax aesthetics matter but I think it can be made to look attractive:

<?php
$path
= join(DIRECTORY_SEPARATOR, array('root', 'lib', 'file.php');
?>
up
0
orlov0562 at gmail dot com
12 days ago
While debugging, this function return error number and it's difficult to remember all errors codes, so I think it's should be there.

<?php
print_r
([
   
'PREG_NO_ERROR' => PREG_NO_ERROR,
   
'PREG_INTERNAL_ERROR' => PREG_INTERNAL_ERROR,
   
'PREG_BACKTRACK_LIMIT_ERROR' => PREG_BACKTRACK_LIMIT_ERROR,
   
'PREG_RECURSION_LIMIT_ERROR' => PREG_RECURSION_LIMIT_ERROR,
   
'PREG_BAD_UTF8_ERROR' => PREG_BAD_UTF8_ERROR,
   
'PREG_BAD_UTF8_OFFSET_ERROR' => PREG_BAD_UTF8_OFFSET_ERROR,
]);
?>

Result:

Array
(
    [PREG_NO_ERROR] => 0
    [PREG_INTERNAL_ERROR] => 1
    [PREG_BACKTRACK_LIMIT_ERROR] => 2
    [PREG_RECURSION_LIMIT_ERROR] => 3
    [PREG_BAD_UTF8_ERROR] => 4
    [PREG_BAD_UTF8_OFFSET_ERROR] => 5
)
up
-1
Harrison
1 month ago
DIRECTORY_SEPARATOR is a lifesaver! A hacker must never know what php files you have included into your php webpages or your php scripts that javascript calls upon. If you were to use '/' to include a file, the hacker can instantly know that the file you included is there, however, if you use DIRECTORY_SEPARATOR then the hacker would not know the file has been included.
up
-7
Paulo Marques
1 year ago
DIRECTORY_SEPARATOR is not necessarily needed, PHP always converts / to the appropriate character in its file functions.
It is good practice, though.
To Top