Работа с UTF-8 в PHP

комментариев 20

UTF-8 PHPНе так давно в комментариях интересовались PHP-функциями для перекодировки в UTF-8 из других кодировок и наоборот. Выкладываю несколько скриптов, на основе которых, в принципе, можно собрать любую функцию для конвертации кодировок.

Напоминаю, что всё-таки это не самый прямой путь. Для начала попробуйте использовать Iconv, если он установлен на вашем сервере.

$title = iconv("ISO-8859-1","utf-8",$title); // из ISO в UTF.

скачать PHP скрипт detect_utf
Функция для обнаружения того, что строка закодирвана UTF-8 (бинарно). Возвращает true если UTF-8 или false если ASCII.

скачать PHP скрипт unicod
Функция для перекодирования строки CP1251 в UNICODE. Для экономии размера заменяет одинаковые по начертанию символы кириллицы на символы латиницы (чтобы сэкономить — вместо «&x0430» («а» рус.) рисует «a» («a» eng.))

скачать PHP скрипт win_utf8
Перекодировка win1251 -> unicode (UTF-8)
То же самое, только без экономии места.

скачать PHP скрипт utf8_win
Функция для перекодировки unicode UTF-8 -> win1251.

скачать PHP скрипт utf8win
Конвертация строки в Win-1251, если она закодирвана UTF. Например — (&[#]x041C;&[#]x0435;&[#]x043B;) . Иногда ошибается. Кавычки — чтобы WP не дешифровал.

скачать PHP скрипт utf16win
Конвертация строки в Win-1251,если она закодирвана UTF. Например — (%u041C%u0435%u043B). Иногда ошибается.

скачать PHP скрипт win2utf
Конвертирует Win1251 -> unicode (не UTF-8).

PHPXref: Анализатор PHP-кода

комментариев 10

PHPXref Анализатор PHP кодаКогда в чужой программе находишь вызов какой-нибудь функции, класса или использование переменной, бывает сложно найти в каком месте её собственно объявили и в каком файле она находится. Забудьте про полнотекстовый поиск, теперь есть PHPXref.

Она анализирует php-код, составляет список его функций и классов и все это внутри себя перелинковывает.

Как обзавестись этим счастьем программиста? Очень просто. Программу нужно скачать (есть Linux-версия и две версии под Windows\DOS — требующая наличия Perl и не требующая), распаковать, затем в файле phpxref.cfg указать каталог с исходниками программы, выходной каталог для сохранения карты, кодировку и запустить файл phpxref.exe.

AJAX: низкий уровень

комментариев 7

Если верить некоторым комментариям, то этот блог читают хардкорные программисты, которые изучили фреймворки и сочли, что лучшим решением в случае технологии Ajax является прямое программирование через XMLHttpRequest Есть в этом доля правды: фреймворки тоже писали простые смертные, а найти их ошибку может быть очень сложно. Давайте рассмотрим прямые методы асинхронного доступа в JavaScript пошагово и тщательно на основе спецификаций примерно в таком прядке:

  • Что такое AJAX вообще и в чём суть.
  • «Скажите «Пожалуйста!» или «Как послать HTTP-запрос».
  • «Сделано!» или «Обрабатываем ответ сервера».
  • «А теперь вместе!» или «Простой пример».
  • «X-Files» или «Работа с XML-ответом».

Читать далее »

Транслитерация

комментариев 17

Срочно понадобился крипт для превращения русского текста в транслит (ГОСТ). Вот, что вышло, может кому пригодится.

<?php
function transliterate($str) {
$str=strtr($str,"абвгдезиклмнопрстуфцъыь",
"abvgdeziklmnoprstufс\"y'");
$str=strtr($str,"АБВГДЕЗИКЛМНОПРСТУФЦЪЫЬ",
"ABVGDEZIKLMNOPRSTUFС\"Y'");
$str=strtr($str,
array(
"э"=>"eh", "х"=>"kh", "й"=>"jj", "ё"=>"jo", "ж"=>"zh", "ч"=>"ch", "ш"=>"sh", "щ"=>"shh", "ю"=>"yu", "я"=>"ya", "Э"=>"Eh", "Х"=>"Kh", "Й"=>"Jj", "Ё"=>"Jo", "Ж"=>"ZH", "Ч"=>"CH", "Ш"=>"SH", "Щ"=>"SHH", "Ю"=>"YU", "Я"=>"YA", "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
return $str;
}
?>

Кстати, ГОСТ или ISO по транслитерации можно найти по этой ссылке.

Safari — теперь и под Windows

комментариев 8

Вышел Safari 3 под WindowsКомпания Apple сегодня выпустила публичную бета-версию своего браузера Safari под ОС Windows. По словам Steve Jobs, скорость рендеринга в новом браузере непревзойдённо высокая:

  • ibench — производительность html: IE 4.6 секунды, FF 3.7 секунды, Safari 2.2 секунды.
  • javascript: IE 2.4 секунды, FF 1.6 секунды, Safari 0.9 секунды.

Мои впечатления такие — браузер устойчив, легок, быстр, довольно удобен. Выглядит довольно непривычно, но приятно. То, что он работает в Windows — отличный подарок веб-разработчикам. Но для постоянного использования я предпочитаю FireFox 2.0.0.4 и жду окончательный релиз его третьей версии.

Ext JS

Ext JSExt JS (YUI-Ext) — это своеобразный AJAX-framework — большая библиотека готовых к использованию JS-компонентов.

В ней присутствуют все возможные окна сообщений, панель инструментов и меню, таблицы с возможностью сортировки и редактирования, изменение размеров блоков, динамические лейауты, табы с разными вариантами загрузки данных, древовидная навигация с поддержкой drag&drop, работа с XML и RSS и прочее.

Библиотека работает с AJAX-библиотеками Yahoo! UI Utilities, так и jQuery или Prototype+Scriptaculous, при чём переключаться между ними можно практически на лету. Библиотека распространяется по Open Source LGPL лицензии. А если по каким-то причинам LGPL пользователю не подходит, или пользователь хочет финансово поддержать проект, то можно получить коммерческую лицензию. А чтобы нам не пришлось таскать за собой все 500Кб библиотек, автор предусмотрел JS builder, который поможет создать необходимый набор модулей, оставив только нужные.

На сайте Ext JS есть подробные инструкции, документация и примеры разработок на основе этой библиотеки (очень неплохие, кстати). Отзывы о самой Ext FS среди разработчиков так же довольно позитивные, хотя многим JS-профессионалам не нравится сама концепция повышения уровня абстракции в создании веб-приложений.

Прячем файл в Windows

комментариев 15

Как спрятать файл в WindowsХочется спрятать свой файл так, чтобы его никто и никогда не нашёл ? Легко.

В операционной системе Windows (только на файловой системе NTFS) реализована работа с так называемыми альтернативными потоками данных — ADS (Alternative Data Streams). Такие потоки можно создавать не только внутри любого файла в NTFS, но и даже в каталоге, при этом данные сохраненные в потоках будут абсолютно невидимы в системе, хотя и будут уменьшать общее место на диске.

Пример копирования любого файла в альтернативный поток другого существующего файла:

C:>type bigfile.exe >> bar.txt:bigfile.exe

В результате выполнения данной команды файл bigfile.exe будет прикреплен к bar.txt в качестве потока. В системе файла bigfile.exe не будет видно, а запустить его прямо из потока можно такой командой:

C:>start c:\bar.txt:bigfile.exe

Похоже, это настоящая находка для авторов стелс-программ и вирусов, потому что штатными средствами Windows определить наличие альтернативных потоков в системе невозможно. Для этого нужны сторонние утилиты, например ads_cat, которая может не только обнаруживать, но и удалять альтернативные потоки.

О том, как сделать такое же под Linux, и где можно получить более подробную информацию про ADS, читайте в источнике этой информации — блоге Sklyaroff.ru .

WP: «4 комментария»

1 Комментарий

WordPressНе знаю, как кого, но меня такая грамматика вордпресса напрягала (может в каких-то русских сборках уже сделано — не знаю, я на основе английской официальной делаю).

Решение придумано : в файле wp-includes\comment-template.php переписываем функцию comments_number() в соответствии с русскими правилами:

function om_number($number, $titles){
$cases = array (2, 0, 1, 1, 1, 2);
return $number." ".$titles[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ];
function comments_number_ru() {
global $id;
$number = get_comments_number($id);
if ($number > 0) {
$output = om_number($number, Array('комментарий', 'комментария', 'комментариев')) . "\n";
} else $output = 'Добавить комментарий';
echo apply_filters('comments_number', $output, $number);}

Перед сохранением убедитесь, что используете кодировку UTF-8 без BOM, иначе угробите движок. Лучше всего пользоваться программой Notepad++.

Шпаргалки и справочники

комментариев 14

Поскольку предыдущий пост со шпаргалкой по CSS многим понравился, я сделал небольшую подборку подобных шпаргалок (или cheat sheets) по самым популярным языкам и платформам, а именно: ASP, CSS, HTML, спецсимволы HTML, JavaScript, Microformats, mod_rewrite, MySQL, PHP, регулярные выражения, Ruby on Rails, безопасная палитра цветов.

Всё как всегда можно посмотреть и скачать прямо здесь.

Читать далее »

Шпаргалки по CSS

Учебник CSS скачать«Шпаргалка» по CSS — это краткий справочником и подсказка на одном А4-листе. В ней перечислены все селекторы (вплоть до спецификации CSS 2.1) и свойства, есть визуальный пример блочной модели, список всех единиц измерения и список медиа-типов, которые поддерживает CSS.

Скачать её можно тут:

Ещё на тему CSS:

  1. Почему так важен DOCTYPE и каким он может быть.
  2. Памятка по CSS .
  3. CSS Layout Techniques — готовые стандартные CSS-шаблоны страниц (только структура, как в прошлом посте).
  4. 53 CSS-Techniques You Couldn’t Live Without — 53 техники CSS, без которых вы не можете жить (на английском).

© 2007-2026 Блог разработчика, страница об авторе.