Manchmal benötigt man Pfade der aktuellen Datei. Absolut, relativ, auch von inkludierten Dateien.
Dieser Codeschnippsel ist sehr hilfreich:
$pathVars['baseDir'] = __DIR__;
$pathVars['baseDir'] = __DIR__;
$pathVars['docRoot'] = filter_input(INPUT_SERVER, 'DOCUMENT_ROOT');
$pathVars['baseUrl'] = preg_replace('!^' . $pathVars['docRoot'] . '!', '', __DIR__);
$pathVars['protocol'] = empty(filter_input(INPUT_SERVER, 'HTTPS')) ? 'http' : 'https';
$pathVars['file'] = __FILE__;
$pathVars['fileUrl'] = preg_replace('!^' . $pathVars['docRoot'] . '!', '', __FILE__);
$pathVars['fileName'] = preg_replace('!^' . __DIR__ . '/!', '', __FILE__);
$pathVars['port'] = filter_input(INPUT_SERVER, 'SERVER_PORT');
$pathVars['uri'] = filter_input(INPUT_SERVER, 'REQUEST_URI');
$pathVars['viewedPort'] = '';
if ($pathVars['protocol'] == 'http' && $pathVars['port'] != 80 || $pathVars['protocol'] == 'https' && $pathVars['port'] != 443) {
$pathVars['viewedPort'] = ':' . $pathVars['port'];
}
$pathVars['domain'] = filter_input(INPUT_SERVER, 'SERVER_NAME');
$pathVars['url'] = $pathVars['protocol'] . '://' . $pathVars['domain'] . filter_input(INPUT_SERVER, 'REQUEST_URI');
$pathVars['fullUrl'] = $pathVars['protocol'] . '://' . $pathVars['domain'] . $pathVars['viewedPort'] . $pathVars['baseUrl'];
echo '<pre>';
print_r($pathVars);
echo '</pre>';
Ausgabebeispiel:
Array
(
[baseDir] => /www/htdocs/username/www/tipps.4uweb.de/dev/pathVars
[docRoot] => /www/htdocs/username/www/tipps.4uweb.de/
[baseUrl] => dev/pathVars
[protocol] => https
[file] => /www/htdocs/username/www/tipps.4uweb.de/dev/pathVars/index.php
[fileUrl] => dev/pathVars/index.php
[fileName] => index.php
[port] => 443
[port] => /dev/pathVars
[viewedPort] =>
[domain] => tips.4uweb.de
[url] => https://tips.4uweb.de/dev/pathVars/index.php
[fullUrl] => https://tips.4uweb.dedev/pathVars
)