Неправильно работает substr()?

GD
На сайте с 29.08.2008
Offline
47
932


$com = strip_tags($comment);
$scomment = substr("$com", 0, 40);

Выводит 21 символ, т.е. с 0 до 20?


$com = strip_tags($comment);
$scomment = substr("$com", 0, 80);

Выводит 44 символа.

Я как понял ошибка из-за того, что присутствуют пробелы в строке, как исправить? Пробелы должны остаться.

[Удален]
#1
GOoDokerok:

$com = strip_tags($comment);
$scomment = substr("$com", 0, 40);


Выводит 21 символ, т.е. с 0 до 20?


$com = strip_tags($comment);
$scomment = substr("$com", 0, 80);


Выводит 44 символа.
Я как понял ошибка из-за того, что присутствуют пробелы в строке, как исправить? Пробелы должны остаться.

Может из-за кодировки проблема?

Используй mb_substr

GD
На сайте с 29.08.2008
Offline
47
#2
donriga:
Может из-за кодировки проблема?
Используй mb_substr

Спасибо! mb_substr() работает, как надо. Значит проблема была из-за пробелов.

R
На сайте с 18.12.2009
Offline
92
#3

donriga, зачем цитировать сообщение, когда Ваш ответ следует сразу под.

[Удален]
#4

Это критично?

Dreammaker
На сайте с 20.04.2006
Offline
569
#5
GOoDokerok:
Значит проблема была из-за пробелов.

проблема из-за разных типов кодировок, substr работает с однобайтными, а mb_substr по типу utf-8.

siv1987
На сайте с 02.04.2009
Offline
427
#6

Аналогично /ru/forum/788506

GD
На сайте с 29.08.2008
Offline
47
#7

Если в строке кириллица, то mb_substr() работает, как и substr(). Каким образом можно подружить с кириллицей?

C
На сайте с 04.02.2005
Offline
291
#8

GOoDokerok, Вы внимательно читали документацию по mb_?...

[Удален]
#9
GD
На сайте с 29.08.2008
Offline
47
#10


mb_internal_encoding('UTF-8');

Помогло.

Спасибо! :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий