- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Задача такая:
Проверяем :Если скрипт запущен на домене второго уровня, то выдаем соответственно название домена. Если при проверке выясняется что скрипт запущен на домене третьего уровня, то также, выдаем название основного домена (второго уровня).
Как это реализовать на PHP?
Понятно, что чтобы получить название текущего сайта используеся $_SERVER['SERVER_NAME']. А дальше затык.
Регекспом точку обнаружить.
Можно с помощью strpos посчитать все точки.
а если explode, если $str[2] не пусто, то третий уровень
Регекспом точку обнаружить.
Можно с помощью strpos посчитать все точки.
Ок, обнаружил я что точки две, и как мне вывести название основного домена при условии что скрипт сам на поддомене? Необходимо чтобы скрипт выдал бы название основного домена независимо от того на поддомене он запущен либо на основном домене.
Отрубите то, что до точки, вместе с точкой. Остаток и есть ваш домен. Рубить можно с помощью substr, используя позицию, извлеченную функцией strpos.
Спасибо всем. У меня получилось вот что:
<?
$xnumer = explode(".", $_SERVER['SERVER_NAME']);
if (sizeof($xnumer)==3)
{
echo $xnumer[1].".".$xnumer[2];
}
else
{
$xdomain=$_SERVER['SERVER_NAME'];
}
echo $xdomain;
?>
Проверьте на вшивость пожалуйста, нигде я не накосячил?
Спасибо всем. У меня получилось вот что:
<?
$xnumer = explode(".", $_SERVER['SERVER_NAME']);
if (sizeof($xnumer)==3)
{
echo $xnumer[1].".".$xnumer[2];
}
else
{
$xdomain=$_SERVER['SERVER_NAME'];
}
echo $xdomain;
?>
Проверьте на вшивость пожалуйста, нигде я не накосячил?
Все же более правильно $_SERVER['HTTP_HOST']
Плюс Вы же можете оказаться по идее на домене sdf.sdfff.domain.com, поэтому лучше полагаться на "хвост".
Итого правильнее
Вот это оптимизация кода! Но меня в ступор вогнала команда strrev. Зачем реверсить то?
Что бы легко взять 2 последних значения, переворачиваем - они оказываются 2 первыми, их и берем. В противном случае пришлось бы гадать - оказываются нужные значения после explode 1 и 2 или 0 и 1... или для домена 5 уровня допустим - 3 и 4:)
Мож правильнее тогда так?
list($x1,$x2)=explode('.',strrev($_SERVER['HTTP_HOST']));
$xdomain=$x1.'.'.$x2;
echo strrev($xdomain);
Да, Вы правы:) поправили выше.
Или еще можно
$xdomain=$x2.'.'.$x1;
echo $xdomain;
Вот это оптимизация кода!
Мож правильнее тогда так?
list($x1,$x2)=explode('.',strrev($_SERVER['HTTP_HOST']));
$xdomain=$x1.'.'.$x2;
echo strrev($xdomain);
СПАСИБО ВСЕМ!