Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Обработка текста utf


Автор: NLspieler 14.6.2009, 19:22
Столкнулся с такой задачей. Есть текстовая строка, в utf кодировке,
нужно первый ее символ сделать красным с увеличенным шрифтом.
Т.е. получить строку:

Код

<span class="red"><big>С</big></span>толкнулся с такой задачей. Есть текстовая строка, в utf кодировке...


Вся проблема в том, что к первому символу utf строки не всегда можно обратится так:
Код

$string[0]

ибо число байтов для символа не фиксировано.

Прошу направить меня на путь истинный.

Автор: Veve 14.6.2009, 19:33
Путь истинный: 
Код

<style type="text/css">
P:first-letter {
font-size: 300%;
float: left;
}
</style>

Код

<p>Текст</p>

Попробуй так, думаю подайдёт.

Автор: NLspieler 14.6.2009, 20:02
Пойдет!  smile   Получай в репу!

Но давайте все таки продолжим обсуждать эту тему. 

Пусть есть utf строка, 
нужно разложить ее на массив, в котором каждому элементу будет соответствовать один символ.
Есть идеи?

 

Автор: Veve 14.6.2009, 20:14
Ну если неймётся, то читай: 
http://codenotes.ru/archives/1021/

 smile спасибо, за репу  smile 

Автор: unicross 14.6.2009, 20:18
http://forum.vingrad.ru/index.php?showtopic=261979&view=findpost&p=1887336

Автор: unicross 14.6.2009, 20:36
Применительно к вашей задаче примерно так
Код

<?php
header("Content-Type: text/html; charset=utf-8");
mb_internal_encoding('UTF-8'); // Установка кодировки
$txt = 'Столкнулся с такой задачей. Есть текстовая строка, в utf кодировке...';
echo '<span class="red"><big>' . mb_substr($txt, 0, 1) . '</big></span>' . mb_substr($txt, 1);
echo "<br>";
echo preg_replace('/^([a-zа-яё])/siu', "<span class=\"red\"><big>$1</big></span>", $txt);
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)