[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mb_strlen (Длина, проблемы из-за переноса)
inpost
Собственно, когда обычная строка, все отлично считает! Проблема появляется, когда появляется переносы!
Есть такого вида строка:

Карл украл у Клары кораллы,
а
Клара ничего не отдала!


Теперь разбить её надо по пробелам и переносам:
$text = str_replace("\n", "\n ", $text);
$text = explode(" ", $text);

Разбил на массив по словам. Там, где нет переноса - нормально считается количество символов через mb_strlen($text, 'UTF-8'). В массиве
"a
"

Там, где есть перенос - считается за 31-32 символа! Я хочу, чтоб считался за 1 символ буквы.

Я думал заменить переносы: str_replace($DEL, "", $text), где в $del помещал: \n, \r, \r\n, <br>. В разных случаях получается длинна от 27 до 31 символа!

Как сделать так, чтобы подсчет выдавал именно количество самих символов? Подскажите, пожалуйста.



Спустя 5 минут, 15 секунд (23.07.2010 - 17:24) Wird_34 написал(а):
А если в UNIX-формате сохранять?

Спустя 1 минута, 18 секунд (23.07.2010 - 17:25) inpost написал(а):
Wird_34 Можешь немножко подробнее?
А вообще, самый главный вопрос, наверное, что в данной ситуации считается за 30 символов? Перенос? Как его вырезать вообще можно?

Спустя 7 минут, 22 секунды (23.07.2010 - 17:32) Wird_34 написал(а):
Я не понял, ты не хочешь чтобы перенос строки за символ считался? Если я правильно понял, то:
str_replace(PHP_EOL, '', $text);
Вроде должно работать.

Спустя 6 минут, 8 секунд (23.07.2010 - 17:39) inpost написал(а):
Wird_34 Хочу, но не хочу, чтоб за 30 символов считался! пусть считается как 1-3 символа, но не 30 же...
В $b лежит буква А и перенос сразу! Все... (Это значение приходит из формы)
Делаю: echo mb_strlen(str_replace(PHP_EOL, '', $b), 'UTF-8');
Выдает результат: 30

Спустя 6 минут, 23 секунды (23.07.2010 - 17:45) Wird_34 написал(а):
Я вот такой код проверил:
$text = "a
"
;

echo mb_strlen($text, 'UTF-8');

Выводит как надо 3 ("a" + "\r" + "\n"). У тебя там после "a" точно пробелы не идут?

Спустя 4 минуты, 23 секунды (23.07.2010 - 17:49) Michael написал(а):
Нолик может от чего то после затесался?

Спустя 5 минут, 56 секунд (23.07.2010 - 17:55) inpost написал(а):
... точно! Пробелы, причем прописывались как &nbsp; =(((
Спасибо большое за помощь!


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.