Perl получает сайт реферера
Мне нужна помощь, чтобы получить сайты, с которых я получил реферер
my $refer = $ENV{HTTP_REFERER}; = google.com/sdaasd
my $website = dont know what how; = google.com
if ($website eq google.com || $website eq yahoo.com) { do this }
else
{ do that }
(веб-сайт www.google.com)
Все, что я хочу получить, это просто www.google.com, а не вся ссылка google.com/sdadgasyd
2 ответа
Итак, вы хотите извлечь часть URI?
Начните с поиска этого на CPAN. Это приводит к URI
модуль и его документация.
Документация показывает, как создать экземпляр с URI в строке (который у вас есть), и указывает на host
метод, который будет извлекать его из URI.
#!/usr/bin/env perl
use v5.16;
use strict;
use warnings;
use URI;
my $uri = URI->new('http://google.com/sdaasd');
say $uri->host;
Очевидно, вы не получите www.google.com
когда вход google.com
потому что они разные имена хостов.
Попробуй это
my $refer = $ENV{HTTP_REFERER};
if(index($refer, "google.com") || index($refer, "yahoo.com") {
#do this
} else {
#do that
}