IIS: DOCUMENT_ROOT mancante
01/03/2012Sviluppare in PHP su server web Microsoft IIS riserva spesso spiacevoli sorprese, dalla mancanza della variabile globale request uri, come scritto qui, all'assenza dell'altrettanto usatissima variable $_SERVER[DOCUMENT_ROOT].
L'ineffabile IIS aggiunge problematiche a problematiche!
Qualora sia necessario poter fruire della variabile document root, dobbiamo scrivere in ph una piccola patch, ecco il codice:
if(!isset($_SERVER['DOCUMENT_ROOT'])) {
if(isset($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0-strlen($_SERVER['PHP_SELF'])));
};
};
if(!isset($_SERVER['DOCUMENT_ROOT'])) {
if(isset($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace( '\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0-strlen($_SERVER['PHP_SELF'])));
};
};