URL-Checker

Dieses praktische kleine Skript dient vor allem den Kollegen aus dem Search Engine Marketing, die ├╝berpr├╝fen wollen, ob die vom Kunden gelieferten URLs auch alle funktionieren.

#!/usr/bin/perl -wT use strict; use CGI; use LWP::UserAgent; $| = 1; my $q = new CGI; print $q->header(-type=>'text/html', -charset=>'utf-8'), $q->start_html("URL-Checker"), $q->h1('URL-Checker'); if ($q->param) { my $input = $q->param('input'); my @urls = split /[\r\n]+/, $input; my $fh = $q->upload('input_file'); while (<$fh>) { my @line = split /[\r\n]+/; push @urls, @line; } for (@urls) { $_ = "http://" . $_ unless /^http/; my $browser = LWP::UserAgent->new( ); $browser->requests_redirectable([]) if ($q->param('no_redirect')); my $response = $browser->get($_); if ($response->status_line eq "200 OK") { print qq{<p><span style="color:green">'$_'</span> is valid</p>}; } else { print qq{<p><span style="color:red">'$_'</span> is not valid<br /><b>Response status:</b> }, $response->status_line, "</p>"; } } } else { print $q->start_multipart_form(-method=>"POST", -action=>"url_checker.pl"), "Kopieren Sie die Liste der URLs (getrennt durch Zeilenumbrüche) in das Textfenster und/oder geben Sie eine Datei zum Upload an.", $q->p, $q->textarea(-name=>'input', -rows=>30, -cols=>60), $q->p, $q->filefield(-name=>'input_file', -default=>'starting value', -size=>50, -maxlength=>80), $q->p, $q->checkbox(-name=>'no_redirect', -checked=>1, -value=>'ON', -label=>"Weitergeleitete URLs als 'not valid' ausgeben"), $q->p, $q->submit, $q->endform; } print $q->end_html;