- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пожалуйста подскажите, каким образом можно получить все заголовки HTTP-запроса на php, установленном как CGI?
В общем, как добиться результата работы функции getallheaders()?
<?
phpinfo(16);
?>
Потом разгребаете то, что он вернул. Это будет список всех переменных доступных в массиве $_ENV.
Это работает независимо от того, собран ли php модулем, или подключается через СГИ.
Спасибо, я знаю про $_ENV, дело в том, что разгребать не получится, т.к. надо узнать все заголовки которые послал браузер, это во первых. А во вторых, все ключи массива возвращаются в верхнем регистре.
mfl, а, сорьки, всё попутал.
phpinfo(32);
А какая разница, в каком регистре? Значения то там в нормальном виде. Попробуйте.
Алгоритм довольно простой: достаточно обойти все ключи массива параметров, которые начинаются с HTTP_. Значения этих ключей — те самые значения заголовков. С их получением проблем быть не должно. Что касается самих заголовков, то всё ненамного сложнее: достаточно отрезать от них частицу "HTTP_", заменить в них прочерк на дефис, и получится массив с заголовками (регистр не имеет значения).
Если же хочется, чтобы всё было красиво, то можно через strtolower() привести ключ к нижнему регистру, разбить полученную строку по прочерку функцией explode() на массив, элементы которого обработать ucfirst() посредством array_map()... И всё :).
Это будет выглядеть примерно так:
Единственное но: если PHP установлен как модуль Apache, то итерировать придётся $_SERVER. Если же PHP работает как CGI, то всю информацию нужно получать из окружения ($_ENV).
mfl, А, кстати, nopox меня поддержал! Ничего я не попутал. : -))) Действуйте!
В общем, спасибо.
По началу испугался, что придется фильтровать значения.