- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
my %tbl;
$tbl{'koi'}="БВЧЗДЕЦЪЙКЛМНОПРТУФХЖИГЮЫЭШЩЯЬАСбвчздецъйклмнопртуфхжигюыэшщяьас";
$tbl{'win'}="абвгдежзийклмнопрстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ";
...
if ($filename=~/^http:\/\//) {
my ($header, $page)=getpage($filename);
if ($page!~/\S/) {next;}
if ($header=~/Charset.*koi/i) {
eval("\$page=~tr/$tbl{'koi'}/$tbl{'win'}/");
}
open(OUT, ">$tmpfile");
print OUT $page;
close OUT;
open(NEWS, "$tmpfile");
} else {
open(NEWS, "$config::rubricsroot/$filename") || do {warn "Не могу открыть файл новостей: $!"; next;};
}
#5624 спровоцировал. Хотел запостить только перекодировку, но не смог удержаться, тут перлы в комплексе.
1) Свой велосипед для получения странички по http через IO::Socket (это отдельная большая песня, может спою потом).
2) Перекодировка из koi8r в cp1251, если нужно. Обратите внимание на элегантный eval.
3) Подстановка результата для дальнейшей построчной обработки через временный файл.
И не говорите мне о том, какой плохой язык PHP.
Lure Of Chaos 12.02.2011 14:17 # +1
gegMOPO4 12.02.2011 14:46 # −2
Konardinho 05.12.2019 01:51 # 0
XYPO3BO3 05.12.2019 02:09 # 0
KpunoBblu_nemyx 29.01.2020 14:34 # 0