- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
sub write_cookie {
my %params = @_;
if ($params{'-expires'} =~ /\+(\d+)m/) {
my ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime($date + $1 * 60);
$year += 1900;
my @mos = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
my @dys = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
$mon = $mos[$mon];
$wday = $dys[$wday];
$params{'-expires'} = sprintf("%s, %02i-%s-%04i %02i:%02i:%02i GMT", $wday, $mday, $mon, $year, $hour, $min, $sec);
}
$params{'-path'} = " path=$params{'-path'};" if $params{'-path'};
$params{'-expires'} = " expires=$params{'-expires'};" if $params{'-expires'};
"$params{'-name'}=$params{'-value'};$params{'-path'}$params{'-expires'}";
}
Oleg_quadro 11.11.2010 19:27 # +1
Oleg_quadro 11.11.2010 19:33 # 0
Lure Of Chaos 11.11.2010 19:57 # +1
Oleg_quadro 11.11.2010 20:48 # 0
%b - это трёхбуквенное слово, обозначающее месяц.
print strftime('%b', gmtime)
у меня на винде вернулось... слово "ноя"
===
Значит нормально.
Oleg_quadro 11.11.2010 20:52 # 0
Хотя, может есть в перле функция, возвращая английский вариант всегда. Надо поискать.
Dummy00001 12.11.2010 01:55 # 0
Arigato 11.11.2010 20:06 # 0
Oleg_quadro 11.11.2010 20:57 # 0
Но если в перле нет встроенной функции (или хотя бы в одном из поставляемых модулей), возвращающей названия месяцев и дней только в английском варианте, а не в локали, то это плохо
Arigato 11.11.2010 21:34 # 0
А, ну тогда понятно, почему такие костыли.
Dummy00001 12.11.2010 02:03 # 0
есть внешние модуля. но по определению: системная функция stftime() всегда работает в текущей локали. в Перле можно поставить локаль в "С" - но это не со всеми системами совместимо и так же имеет негативный эффект на производительность.
но с другой стороны. дата должна быть не просто по англиски написана (и англиских локалей между прочим много) и не по ISO стандартам - а по RFC822/RFC2822. так что системные функции (== POSIX == ISO) по определению не катят.
Oleg_quadro 11.11.2010 19:31 # +1
Вижу что она поменялась, только после перезагрузки страницы.
Браузер Firefox 3.6.12. И в хроме тоже.
fey 12.11.2010 10:15 # 0
По теме:
Функция - велосипед, но на гавнокоде ей точно не место.
bugmenot 12.11.2010 10:23 # 0
хуже когда коммент не постится
Анонимус 12.11.2010 02:43 # 0
либо это его сырцы либо тут не обошлось без пхпшника)
зы:
>>$params{'-expires'}
точно не сырцы
и точно не без пхпшника)
Arigato 12.11.2010 10:10 # 0
Видимо, после 2010 они начали про него забывать :)