PHP‎ > ‎

Fehlerhafte DOCUMENT_ROOT-Angabe umgehen


Wenn die superglobale Server-Variable $_SERVER['DOCUMENT_ROOT'] keinen oder einen falschen Wert beinhaltet, dann kann man den richtigen Wert wie folgt setzen:
<?php
  preg_match_all("/\/{1,}/", $_SERVER['SCRIPT_NAME'], $arr_matches); // doppelte (oder mehr) Slashes finden
rsort($arr_matches[0]);
if (is_array($arr_matches) && 0 < count($arr_matches)) {
$_SERVER['SCRIPT_NAME'] = str_replace($arr_matches[0], '/', $_SERVER['SCRIPT_NAME']); // doppelte (oder mehr) Slashes ersetzen
}
$_SERVER['DOCUMENT_ROOT'] = (string) substr($_SERVER["SCRIPT_FILENAME"], 0, -(strlen($_SERVER['SCRIPT_NAME'])));
?>