Попробуйте при помощи $_SERVER['SERVER_NAME'], он возвращает имя сервера, которое как правило совпадает с именем сайта. Если не ошибаюсь: PHP: <?phpIf ($_SERVER['SERVER_NAME'] == 'www.ya.ru') {// Блок для тех кто с сайта www.ya.ru} echo {// Блок для остальных}?>
Вероятно имелся в виду сторонний сай на котором была ссылка. Тогда в предидущем примере нудно заменить 'SERVER_NAME' на 'HTTP_REFERER'. --- добавлено: Feb 4, 2013 9:02 AM --- Ну и ещё возможно придётся использовать функцию parse_url() т.к. 'HTTP_REFERER' возвращает полный адрес.
HTTP_REFERER возвратит имя домена/адрес, с которого был сделан вход на страницу. Для получения ip'шника - $_SERVER["REMOTE_ADDR"]
Всем спасибо за ответы. Но... Так как практически полный ноль в PHP попробую сформулировать вопрос конкретней. Ситуация. В шаблоне есть переменная которая выводит код. Понятно, что переход может быть с сайт.ру, сайт.ру/страница1, сайт.ру/каталог/страница2, сайт2.ру и т.д. Так вот надо, что бы переменная отсекала все не нужное(брала только сайт.ру), и на основании этого выводила(присваивала переменной) нужное значение. Если можно, рабочий код пожалуйста. Заранее спасибо.
попробуйте так switch(get_domain("$_SERVER['HTTP_REFERER']")){ case 'site1.ru': $template = 'one.tpl'; break; case 'site2.ru': $template = 'two.tpl'; break; } function get_domain($url) { $pieces = parse_url($url); $domain = isset($pieces['host']) ? $pieces['host'] : ''; if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) { return $regs['domain']; } return false; }
Пробовал так PHP: switch(get_domain($_SERVER['HTTP_REFERER'])){case 'test_1.tt':$template = 'test1';break; case 'site2.ru':$template = 'two.tpl';break; default: $template = 'defolt'; echo "$template";}function get_domain($url){$pieces = parse_url($url);$domain = isset($pieces['host']) ? $pieces['host'] : '';if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {return $regs['domain'];}return false;}[/code]Выводит дефолтное значение.Пробовал так[PHP]$template =(get_domain($_SERVER['HTTP_REFERER'])); echo "$template"; function get_domain($url){$pieces = parse_url($url);$domain = isset($pieces['host']) ? $pieces['host'] : '';if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {return $regs['domain'];}return false;}[/code]Переменная пустая.Где собака порылась?Заранее спасибо.
yakutze, попробуйте добавить в case 'www.test_1.tt': вы с какого сайта переходите, добавьте для проверки вверх echo '<a href="/">test</a>';
С test_1.tt идет переход. Попробовал, выводит test- гиперссылкой на test_2.tt(это домен на котором тестирую) Да, и еще я так понял, что есть разница с ВВВ и без. Так вот желательно ВВВ тоже отсекать. Хотя в условие дополнительно конечно можно добавить. Спасибо что уделяете время.