[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: неверный результат substr
balashovka
уважаемые форумчане, подскажите, хоть, куда копать?
проблема: имеем строку, которую нужно обрезать и результат использовать как число. как бы работает, но за пол года уже второй "затык". ниже - вырезка из массива с проблемной строкой (элемент 62)
57 => array(3) (
"code" => string(10) "4E4D364618"
"substr(pmnt_data['desc'], 4)" => string(6) "364618"
"intval(substr(pmnt_data['desc'], 4))" => integer 364618
)
58 => array(3) (
"code" => string(10) "20F5199185"
"substr(pmnt_data['desc'], 4)" => string(6) "199185"
"intval(substr(pmnt_data['desc'], 4))" => integer 199185
)
59 => array(3) (
"code" => string(10) "5A8B334354"
"substr(pmnt_data['desc'], 4)" => string(6) "334354"
"intval(substr(pmnt_data['desc'], 4))" => integer 334354
)
60 => array(3) (
"code" => string(10) "60A5365082"
"substr(pmnt_data['desc'], 4)" => string(6) "365082"
"intval(substr(pmnt_data['desc'], 4))" => integer 365082
)
61 => array(3) (
"code" => string(10) "78B4365064"
"substr(pmnt_data['desc'], 4)" => string(6) "365064"
"intval(substr(pmnt_data['desc'], 4))" => integer 365064
)
62 => array(3) (
"code" => string(11) "625Е273754"
"substr(pmnt_data['desc'], 4)" => string(6) "273754"
"intval(substr(pmnt_data['desc'], 4))" => integer 0
)
63 => array(3) (
"code" => string(10) "2297306861"
"substr(pmnt_data['desc'], 4)" => string(6) "306861"
"intval(substr(pmnt_data['desc'], 4))" => integer 306861
)
64 => array(3) (
"code" => string(10) "32C7200801"
"substr(pmnt_data['desc'], 4)" => string(6) "200801"
"intval(substr(pmnt_data['desc'], 4))" => integer 200801
)

с какого перепугу 273754 intval() возвращает как 0?
sergeiss
balashovka, обрати внимание на то, что в позиции 62 у тебя длина текста 11 знаков, хотя визуально их там 10. Возможно, что буква "Е" там русская, в 2-х байтной кодировке. Посмотри в сторону функций mb_*, в первую очередь на эту http://php.net/manual/ru/function.mb-substr.php
То есть, попросту говоря, замени substr() на mb_substr() и посмотри на результат.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
balashovka
таки да...
спасибо огромное
sergeiss
Таки шо "да"? smile.gif Была русская буква, двух-байтная?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

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