- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вопрос довольно простой. Есть стандартный реквест ури для одной странички
<?php {
if ($_SERVER["REQUEST_URI"]=="/index.html"
) { ?>
<h4>заголовок</h4>
текст
<?php }} ?>
Вывод идёт на конкретную страницу.
Мне нужно что бы вывод был на все страницы категории, те все страницы url которых начинается на http://site.ru/demo/, страницы типа http://site.ru/demo/dgk, http://site.ru/demo/lksdf
Их может быть тысячи, поэтому перечисление не пойдёт.
Как-то так
$full_path = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$pos = (int) strpos($full_path, " http://site.ru/demo/");
if ($pos>0) {
echo <<<END
<h4>заголовок</h4>
текст
END;
}
Хелпзонович, такой костыль не будет работать. $pos>0 так же будет при "http://site.ru/path/?q=http://site.ru/demo/" и других вариантах. Да и вообще там SERVER_NAME не нужен.. LovelAss, дал верный вариант, только использовать надо strpos, /demo/ и /deMo/ все же разные адреса.
ProTeg, пробуйте через substr с длиной или strncmp, сравнивая с '/demo/'.
if (preg_match("@/demo/@smi",$_SERVER['REQUEST_URI']))
Хелпзонович, такой костыль не будет работать. $pos>0 так же будет при "http://site.ru/path/?q=http://site.ru/demo/" и других вариантах. Да и вообще там SERVER_NAME не нужен.. LovelAss, дал верный вариант, только использовать надо strpos, /demo/ и /deMo/ все же разные адреса.
Логично, пусть будет так
$full_path = $_SERVER['SERVER_NAME'].parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
Нужен ли там SERVER_NAME не нам решать. В ТЗ четко указано реагировать на http://site.ru/demo.... Если несколько доменов настроено на одну локацию и кроме site.ru там еще siteA.ru, siteB.ru и siteС.ru может быть. А выводить надо только для site.ru
Хелпзонович, как ни крути вы серавно даете не рабочий код.
1) Ваш код:
Вы в strpos ищете позицию вместе с протоколом http:// а $full_path у вас не начинается с протокола, соответственно всегда будет false.
2) Вы там что то поправили:
Теперь попробуйте найти вхождение $_SERVER['REQUEST_URI'] = "/path/site.ru/demo/12345/"; $pos>0 опять.
Если уж четко по ТЗ, http://site.ru/demo/(any)
1) протокол только http
2) хост только site.ru без www
3) путь начинается с /demo/
if (preg_match("@/demo/@smi",$_SERVER['REQUEST_URI']))
Модификаторы s и m противоречат друг другу(и вообще REQUEST_URI в одну строку всегда). i - регистра независимый поиск тоже не нужен, /demo/ и /DEMO/ разные адреса. И самое главное поиск /demo/ идет не с начала строки - наверно так надо: @^/demo/
ProTeg, Надавали вам кучу говно кода.. берите код от LovelAss с поправкой на strpos
Большое всем спасибо!
---------- Добавлено 03.10.2015 в 13:40 ----------
ProTeg, Надавали вам кучу говно кода.. берите код от LovelAss с поправкой на strpos
Тоже сразу к нему склонятся стал.