X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> strlen чудит
asbury
asbury
Topic Starter сообщение 22.6.2011, 18:08; Ответить: asbury
Сообщение #1


Народ, подскажите, в чем косячу

[PHP]
$name = "Лоток";
$setoy = strlen($name) - 4;
$sercher_art = substr($name, $setoy, 4);
[/PHP]

$sercher_art - возвращает "ок"

[PHP]
$name = "Виктория декор 2215";
$setoy = strlen($name) - 4;
$sercher_art = substr($name, $setoy, 4);
[/PHP]

$sercher_art - возвращает "2215" как и задумывалось.

Как такое возможно? mb_strlen() такая же борода
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 22.6.2011, 18:16; Ответить: alexdrob
Сообщение #2


Вообще скорей всего вы используете UTF-8 кодировку, а там 1 символ 2 байта.
Вот функции и не правильно работают.

А по поводу конкретного примера, если просто вернуть нужно последние символы, например 4 то пишут так
[PHP]$name = "Лоток";
$sercher_art = substr($name, -4);[/PHP]
то есть 4 с конца
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 22.6.2011, 18:52; Ответить: asbury
Сообщение #3


окей, спасибо на счет примера, но, как быть, с тем что бы функции работали? Это что за фокус кстати на счет 2х байт, есть можно ссылку почитать...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 22.6.2011, 18:56; Ответить: asbury
Сообщение #4


кстати с этим примером тоже чудит, забавно всегда в UTF делаю и первый раз такая борода...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zabmix
zabmix
сообщение 22.6.2011, 19:58; Ответить: zabmix
Сообщение #5


(asbury @ 22.6.2011, 21:56) *
всегда в UTF делаю

Больная тема, у меня бывает preg_replace на UTF не корректно работает, не решил проблему?

Не сочтите за флуд, просто к теме о ютф.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 22.6.2011, 20:05; Ответить: alexdrob
Сообщение #6


[PHP]$name = "Лоток";
mb_internal_encoding("UTF-8");
echo mb_substr($name,-4);[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 22.6.2011, 21:55; Ответить: asbury
Сообщение #7


спасибо)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 24.4.2024, 4:41
Дизайн