Блог веб-разработчика: в помощь программистам

PHP перекодируем текст из HTML-последовательностей и наоборот

Думаю многие из вас в теле HTML страницы встречали вместо привычного русского текста набор символов и цифр, так вот – это HTML последовательности. Иногда перед разработчиками стоит задача или закодировать текст в такую последовательность, или наоборот раскодировать,вот для этого вам и пригодится следующая функция, $to_uni = false – из HTML последовательности в нормальный текст, $to_uni = true – наоборот.

< ?php function unicon($str, $to_uni = false) { $cp = Array ( "А" => "А", "а" => "а",
"Б" => "Б", "б" => "б",
"В" => "В", "в" => "в",
"Г" => "Г", "г" => "г",
"Д" => "Д", "д" => "д",
"Е" => "Е", "е" => "е",
"Ё" => "Ё", "ё" => "ё",
"Ж" => "Ж", "ж" => "ж",
"З" => "З", "з" => "з",
"И" => "И", "и" => "и",
"Й" => "Й", "й" => "й",
"К" => "К", "к" => "к",
"Л" => "Л", "л" => "л",
"М" => "М", "м" => "м",
"Н" => "Н", "н" => "н",
"О" => "О", "о" => "о",
"П" => "П", "п" => "п",
"Р" => "Р", "р" => "р",
"С" => "С", "с" => "с",
"Т" => "Т", "т" => "т",
"У" => "У", "у" => "у",
"Ф" => "Ф", "ф" => "ф",
"Х" => "Х", "х" => "х",
"Ц" => "Ц", "ц" => "ц",
"Ч" => "Ч", "ч" => "ч",
"Ш" => "Ш", "ш" => "ш",
"Щ" => "Щ", "щ" => "щ",
"Ъ" => "Ъ", "ъ" => "ъ",
"Ы" => "Ы", "ы" => "ы",
"Ь" => "Ь", "ь" => "ь",
"Э" => "Э", "э" => "э",
"Ю" => "Ю", "ю" => "ю",
"Я" => "Я", "я" => "я"
);
if ($to_uni) {
$str = strtr($str, $cp);
} else {
foreach ($cp as $c) {
$cpp[$c] = array_search($c, $cp);
}
$str = strtr($str, $cpp);
}
return $str;
}
echo unicon('Москва Тверская 7'); //выводим расшифрованую запись в браузер
?>

А вот ещё нашёл онлайн тулзу для такого рода преобразований http://wwwguru.net/sandbox/index.php

  • Я недавно стал увлекаться созданием сайтов, а именно языком тегов HTML, но надавно услышал что данный язык морально устарел, т.е. на нем уже никто не пишет.Похоже это на правду имли нет, может мне сразу учить более новый язык? Спрашиваю потому что, как я погляжу вы разбираетесь в этом вопросе.

  • Полезная вещь, а то мне было непонятно, как расшифровать такие символы, каким образом их перекодировать. Спасибо за php код и за Ваш блог :)Очень познавательно. Особенно для начинающих создателей сайтов – “чайников”, подобных мне.

  • Очень не люблю PHP за его текстовость и полное игнорирование такого полезного явления, как DOM. Вывод HTML-кода в виде текста вредит пониманию HTML как структуры. Однако, нашлись и под PHP разработки, реализующие процессор XSLT, который, в свою очередь, базируется только на Document Object Model и текст в принципе не переносит. Набрал разных и тестирую.

    А блог хорош. Подпишусь, пожалуй.

  • Да, и я забыл. XSLT-процессор сам всегда знает, как вывести символы в определенной кодировке.

  • Смешно звучит вопрос про HTML и “более новый язык”. Как будто идет речь о новых релизах языков программирования, использующих ООП модель. HTML – это основа! На этой базе уже строятся другие Веб-знания. Автору отдельное спасибо за статью. PHP я лично предпочитаю Perl-у по целому ряду причин. А перекодировка – вопрос для многих новичков актуальный. Да и не для новичков. В сети подчас нерелаьно сложно найти информацию о PHP и HTML не считая всяких примитивных руководств типа “Step to step”

  • Помогло!спасибо ))

You can follow any responses to this entry through the RSS 2.0 feed.