Доброго всем времени суток. Не давно наткнулся на интересную статью. В ней говорилось о функции, которая отображает дату на веб странице в 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); } } ?>
Вот так гораздо приятней нежели непонятных символов 🙂
Всем спасибо за внимание!