Доброго всем времени суток. Не давно наткнулся на интересную статью. В ней говорилось о функции, которая отображает дату на веб странице в php файл. Так сказать русификация функции date() на языке PHP (Не плохо сказал 🙂 ).
Вывод дня недели, месяца и других английских слов и символов на русском языке. И выглядела она примерно так:

<?
function rus_date() {
$translate = array(
"am" => "дп",
"pm" => "пп",
"AM" => "ДП",
"PM" => "ПП",
"Monday" => "Понедельник",
"Mon" => "Пн",
"Tuesday" => "Вторник",
"Tue" => "Вт",
"Wednesday" => "Среда",
"Wed" => "Ср",
"Thursday" => "Четверг",
"Thu" => "Чт",
"Friday" => "Пятница",
"Fri" => "Пт",
"Saturday" => "Суббота",
"Sat" => "Сб",
"Sunday" => "Воскресенье",
"Sun" => "Вс",
"January" => "Января",
"Jan" => "Янв",
"February" => "Февраля",
"Feb" => "Фев",
"March" => "Марта",
"Mar" => "Мар",
"April" => "Апреля",
"Apr" => "Апр",
"May" => "Мая",
"May" => "Мая",
"June" => "Июня",
"Jun" => "Июн",
"July" => "Июля",
"Jul" => "Июл",
"August" => "Августа",
"Aug" => "Авг",
"September" => "Сентября",
"Sep" => "Сен",
"October" => "Октября",
"Oct" => "Окт",
"November" => "Ноября",
"Nov" => "Ноя",
"December" => "Декабря",
"Dec" => "Дек",
"st" => "ое",
"nd" => "ое",
"rd" => "е",
"th" => "ое"
);

if (func_num_args() > 1) {
$timestamp = func_get_arg(1);
return strtr(date(func_get_arg(0), $timestamp), $translate);
} else {
return strtr(date(func_get_arg(0)), $translate);
}
}
?>

И вызов данной функции

<?
echo rus_date("l, j F Y");
?>

Но вот незадача, вставив код в отдельный файл и вызвав его при помощью include() выходили всякие краказябры :-D. Естественно что это меня не устраивала и стал рыть в всемирной паутине. Нигде толком ничего не нашел кроме одной очень полезной, на мой взгляд, функции которая не сразу привлекло мое внимание. Если кто то еще не в курсе, эта функция iconv().

Вкратце: iconv – Преобразовывает символы строки в другую кодировку.

И выше упомянутый код стал выглядеть вот так:


<?php
function rus_date() {
$translate = array(
"am" => iconv("Windows-1251","UTF-8","дп"),
"pm" => iconv("Windows-1251","UTF-8","пп"),
"AM" => iconv("Windows-1251","UTF-8","ДП"),
"PM" => iconv("Windows-1251","UTF-8","ПП"),
"Monday" => iconv("Windows-1251","UTF-8","Понедельник"),
"Mon" => iconv("Windows-1251","UTF-8","Пн"),
"Tuesday" => iconv("Windows-1251","UTF-8","Вторник"),
"Tue" => iconv("Windows-1251","UTF-8","Вт"),
"Wednesday" => iconv("Windows-1251","UTF-8","Среда"),
"Wed" => iconv("Windows-1251","UTF-8","Ср"),
"Thursday" => iconv("Windows-1251","UTF-8","Четверг"),
"Thu" => iconv("Windows-1251","UTF-8","Чт"),
"Friday" => iconv("Windows-1251","UTF-8","Пятница"),
"Fri" => iconv("Windows-1251","UTF-8","Пт"),
"Saturday" => iconv("Windows-1251","UTF-8","Суббота"),
"Sat" => iconv("Windows-1251","UTF-8","Сб"),
"Sunday" => iconv("Windows-1251","UTF-8","Воскресенье"),
"Sun" => iconv("Windows-1251","UTF-8","Вс"),
"January" => iconv("Windows-1251","UTF-8","Января"),
"Jan" => iconv("Windows-1251","UTF-8","Янв"),
"February" => iconv("Windows-1251","UTF-8","Февраля"),
"Feb" => iconv("Windows-1251","UTF-8","Фев"),
"March" => iconv("Windows-1251","UTF-8","Марта"),
"Mar" => iconv("Windows-1251","UTF-8","Мар"),
"April" => iconv("Windows-1251","UTF-8","Апреля"),
"Apr" => iconv("Windows-1251","UTF-8","Апр"),
"May" => iconv("Windows-1251","UTF-8","Мая"),
"June" => iconv("Windows-1251","UTF-8","Июня"),
"Jun" => iconv("Windows-1251","UTF-8","Июн"),
"July" => iconv("Windows-1251","UTF-8","Июля"),
"Jul" => iconv("Windows-1251","UTF-8","Июл"),
"August" => iconv("Windows-1251","UTF-8","Августа"),
"Aug" => iconv("Windows-1251","UTF-8","Авг"),
"September" => iconv("Windows-1251","UTF-8","Сентября"),
"Sep" => iconv("Windows-1251","UTF-8","Сен"),
"October" => iconv("Windows-1251","UTF-8","Октября"),
"Oct" => iconv("Windows-1251","UTF-8","Окт"),
"November" => iconv("Windows-1251","UTF-8","Ноября"),
"Nov" => iconv("Windows-1251","UTF-8","Ноя"),
"December" => iconv("Windows-1251","UTF-8","Декабря"),
"Dec" => iconv("Windows-1251","UTF-8","Дек"),
"st" => iconv("Windows-1251","UTF-8","ое"),
"nd" => iconv("Windows-1251","UTF-8","ое"),
"rd" => iconv("Windows-1251","UTF-8","е"),
"th" => iconv("Windows-1251","UTF-8","ое")
);

if (func_num_args() > 1) {
$timestamp = func_get_arg(1);
return strtr(date(func_get_arg(0), $timestamp), $translate);
} else {
return strtr(date(func_get_arg(0)), $translate);
}
}
?>

Вот так гораздо приятней нежели непонятных символов 🙂

Всем спасибо за внимание!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *