Создать sitemap – скрипт на perl
Я наал штамповать сайты 1 в сутки и ессно нужно создавать к ним sitemap для ьыстрейшего индексирования ну и вообще это по правилам уже, руками не создашь ессно для 1000 страниц, поэтому пришлось прибегнуть к знаниям перла и написать скрипт который обходит рекурсвино указанную иректорию и оздаёт sitemap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | #!/usr/bin/perl use warnings; use strict; my @EXT = qw (html htm shtml); my ($DOMAIN, $START) = ($ARGV[0], $ARGV[1]); my $URL = ' <url> <loc>[!domain][!url]</loc> <lastmod>[!date]</lastmod> <changefreq>weekly</changefreq> </url>'; sub DATE { my (undef, undef, undef, $day, $month, $year) = localtime(time); $year+=1900; $month++; $month = '0'.$month if $month < 10; $day = '0'.$day if $day < 10; return $year.'-'.$month.'-'.$day; } my $DATE = DATE(); print '<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; push(my @DIR, $START); foreach my $DIR (@DIR) { opendir(DIR, $DIR) || die; my @ls = readdir(DIR); closedir(DIR); foreach my $u (@ls) { next if ($u=~/^.$/ || $u=~/^..$/); if(opendir(tDIR, $DIR.$u.'/')) { closedir(tDIR); push (@DIR, $DIR.$u.'/'); } else { foreach my $ext (@EXT) { if ($u=~/$ext/) { my $tmp = $URL; my $url = $DIR.$u; $url=~s/$START//; $tmp=~s/\[!url]/$url/; $tmp=~s/\[!domain]/$DOMAIN/; $tmp=~s/\[!date]/$DATE/; print $tmp; last; } } } } } print "\n",' </urlset>',"\n"; |
Комментарии
Написать комментарий.
Вы не авторизовались для того чтоб комментировать.
