Ma quindi l'intento finale dell'uso di parse_url() è di recuperare l'host dagli URL dei referer?
Il recupero dell'host da un URL può essere fatto semplicemente così:
Codice PHP:
function NomeDominio($url='') {
$str = strtolower(trim($url));
$str = preg_replace('/^http:\/\//i', '', $str);
$str = preg_replace('/^https:\/\//i', '', $str);
$str = preg_replace('/^www\./i', '', $str);
$str = explode('.', $str);
$str = trim($str[0]);
return $str;
}
Ad ogni modo, io prima ho risposto sulla base delle imformazione che ha fornito. Non vedendo l'intero codice non posso prevedere eventuali errori altrove nell'intero codice.
Se vuole, può riportare l'intero codice.
Comnque differenti configurazioni tra AMPPS in locale ed i server AlterVIsta, possono tal volta compoetare comportamenti incongrenti. Così come l'uso di differenti versini di PHP.
Edit:
Mi sorge un dubbio... L'url che le serve recuperare è quella corrente dove esegue lo script?
In tal caso, è corretto che HTTP_REFERER su AlterVista restituisca "". HTTP_REFERER viene valorizzato con l'url di provenienza da un asltro sito non con quello corrente. Per ottenere quello corrente va usato REQUEST_URI.
Codice PHP:
echo $_SERVER['REQUEST_URI'];
I sistemi che emulano i server in locale, tal volta possono avere comportamenti ingannevoli rispetto ai servere veri. Il comportamento di AMPPS che valorizza HTTP_REFERER come se fosse REQUEST_URI non è esattamente un errore lato suo, ma non è corretto in riferimnto a PHP su server.
Cordiali saluti.