Есть такого вида строка:
Карл украл у Клары кораллы,
а
Клара ничего не отдала!
Теперь разбить её надо по пробелам и переносам:
$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 символов? Перенос? Как его вырезать вообще можно?
А вообще, самый главный вопрос, наверное, что в данной ситуации считается за 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
В $b лежит буква А и перенос сразу! Все... (Это значение приходит из формы)
Делаю: echo mb_strlen(str_replace(PHP_EOL, '', $b), 'UTF-8');
Выдает результат: 30
Спустя 6 минут, 23 секунды (23.07.2010 - 17:45) Wird_34 написал(а):
Я вот такой код проверил:
Выводит как надо 3 ("a" + "\r" + "\n"). У тебя там после "a" точно пробелы не идут?
$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 написал(а):
... точно! Пробелы, причем прописывались как =(((
Спасибо большое за помощь!
Спасибо большое за помощь!
_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).