|
|
|
| Собственно вопрос в названии темы, как из HTTP_HOST получить только домен.
Сделал вот так, но это ужасно страшно( а parse_url() не возвращает имя домена без субдоменов
<?
$currDomain = $_SERVER['HTTP_HOST'];
$expl_domain = explode('.', $_SERVER['HTTP_HOST']);
if(count($expl_domain)>2)
{
$currDomain = $expl_domain[(count($expl_domain)-2)].'.'.$expl_domain[(count($expl_domain)-1)];
}
echo $currDomain;
?>
|
| |
|
|
|
|
|
|
|
для: Слух
(03.02.2010 в 17:59)
| | Если домен второго кровня ,) всмысле как чаще всего бывает типа site.com
, то например так
preg_match('#[^.]+\.[^.]+$#', $_SERVER['HTTP_HOST'], $array);
|
только часть выражения сначала совпадёт ошибочно, потом наткнувшись на $ начнёт всё сначала
, но с такой короткой строкой как HTTP_HOST ничего можно и не оптимизировать
, а-то если ещё знать что там именно две точки можно было-бы хоть даже так
echo $txt = vsprintf ('%2$s.%3$s', explode('.', 'www.xxxxxxx.zzz'));
|
// c array_reverse() можно и так , но тоже лишние манипуляции | |
|
|
|
|
|
|
|
для: heed
(03.02.2010 в 20:07)
| | В том то и проблема, что субдоменов может быть и не один. Спасибо в целом я понял прицип.
А нет параметра, который находит последнее вхождение? | |
|
|
|
|
|
|
|
для: Слух
(04.02.2010 в 11:56)
| | strrchr
strrpos | |
|
|
|