Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> intval максимальный предел 
V
    Опции темы
bars80080
Дата 7.5.2009, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



http://www.php.ru/manual/function.intval.html
Цитата

The maximum value depends on the system. 32 bit systems have a maximum signed integer range of -2147483648 to 2147483647. So for example on such a system, intval('1000000000000') will return 2147483647.

как отодвинуть максимальный предел? есть ли какой аналог?
PM MAIL WWW   Вверх
enof
Дата 7.5.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(bars80080 @  7.5.2009,  17:06 Найти цитируемый пост)
как отодвинуть максимальный предел?

Поставить 64 битную ось.
Цитата(bars80080 @  7.5.2009,  17:06 Найти цитируемый пост)
есть ли какой аналог? 

Из стандартных средств вроде нет, можно попробовать повторить поведение с помощью строковых/рв функций.

Добавлено через 1 минуту и 55 секунд
Цитата

php.ru

 smile 
PM MAIL ICQ Skype   Вверх
bars80080
Дата 7.5.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(enof @  7.5.2009,  16:20 Найти цитируемый пост)
Поставить 64 битную ось.

это не решение, машину из-за не настроенных фар не меняют


Цитата(enof @  7.5.2009,  16:20 Найти цитируемый пост)
php.ru

php.en  smile 
PM MAIL WWW   Вверх
enof
Дата 7.5.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(bars80080 @  7.5.2009,  18:03 Найти цитируемый пост)
php.en

где вы такой сайт нашли? Предпочитаете читать на русском г*вносайте по английски, нежели на официальном сайте документацию на русском языке? smile 
Цитата(bars80080 @  7.5.2009,  18:03 Найти цитируемый пост)
это не решение, машину из-за не настроенных фар не меняют

Ну тогда писать свою функцию, правила преобразований типов расписаны в документации.

Это сообщение отредактировал(а) enof - 7.5.2009, 17:17
PM MAIL ICQ Skype   Вверх
skyboy
Дата 7.5.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(bars80080 @  7.5.2009,  15:06 Найти цитируемый пост)
как отодвинуть максимальный предел?

а смысл? получить переполнение в переменной типа int? если оно не умещается, значит, не умещается smile
почему бы в таком случае не подключить GMP?
PM MAIL   Вверх
bars80080
Дата 7.5.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(skyboy @  7.5.2009,  17:55 Найти цитируемый пост)
а смысл? получить переполнение в переменной типа int?

почему переполнение? тогда используем следующий тип bigint.

Цитата(skyboy @  7.5.2009,  17:55 Найти цитируемый пост)
если оно не умещается, значит, не умещается

совершенно не серьёзно, у меня у бланков номера такие, в базе пределы расширил, а здесь оказывается не могу легко и просто обрубать пользовательские шалости. сейчас в итоге сношу регулярку всё, что не 0-9


Цитата(enof @  7.5.2009,  17:17 Найти цитируемый пост)
Предпочитаете читать на русском г*вносайте по английски

предпочитаю вникать в тонкости дела, а не заниматься поиском нюансов в невеликом и не могучем
цеж чисто эффективность труда падает


Цитата(enof @  7.5.2009,  17:17 Найти цитируемый пост)
Ну тогда писать свою функцию, правила преобразований типов расписаны в документации.

ну это-то понятно, что замену катать придётся


Цитата(skyboy @  7.5.2009,  17:55 Найти цитируемый пост)
почему бы в таком случае не подключить GMP? 
что-то мне кажется это будет сродни вызову ударной авиации против тараканов

PM MAIL WWW   Вверх
ksnk
Дата 7.5.2009, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



bars80080, а с чего потребовалось такое? Может есть способы по другому решить задачу?

Добавлено через 1 минуту и 20 секунд
bcmath


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 7.5.2009, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(ksnk @  7.5.2009,  19:28 Найти цитируемый пост)
а с чего потребовалось такое? 

бланк билета, у него есть номер с числами превосходящими этот диапазон. номера очень важны, так как на них строится система запрещения и раздачи, а соответственно и отчётности. у них даже название такое: БСО - бланк строгой отчётности.
когда пользователь отправляет форму с данными билета, то проверяется, приписан ли этот бланк к нему. самое простое очистить номер от любых вкраплений - intval, далее в проверку и если такой не записан на агента, то ему показывается кукиш (это не дружелюбная система и исправлять чужие огрехи она не намерена, тип ошибки я им отдаю, а далее пусть контроллируют себя сами)

а фишка в том, что весь массив полей у меня пропускался через соответствующий обработчик, в котором в переменную возвращалось чистое значение согласно формату. по формату чистого числа у меня стояла простейшая обработка: intval. а что ещё было нужно? 
оказывается простота оказалась не такой простой
PM MAIL WWW   Вверх
gta4kv
Дата 7.5.2009, 19:50 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



А номера бланков сменить нельзя? 

Уж лучше бы они были, например, такие:
Код

NNN-00000000-NNNN

Где N — любая буква, где 0 — любая цифра. Цифр всего 8, а вариантов туева хуча. smile

От лишнего геморроя бы избавился.

Ну и конечно, да, если есть регулярка что ты вообще с invtal мучаешься?

Это сообщение отредактировал(а) gta4kv - 7.5.2009, 20:14
PM MAIL   Вверх
skyboy
Дата 7.5.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(bars80080 @  7.5.2009,  17:45 Найти цитируемый пост)
тогда используем следующий тип bigint.

да, я как-то не подумал.
Цитата(bars80080 @  7.5.2009,  17:45 Найти цитируемый пост)
сейчас в итоге сношу регулярку всё, что не 0-9

мне это кажется даже более удобным вариантом smile во-первых, чисто число тебе не надо - ни складывать, ни умножать ты его не собираешься. конечный автомат, полученный из регулярки будет работать побыстрее(если речь о быстродействии на больших массивах), чем преобразование строка-число(потому как там), хотя тут можно поспорить(вдруг в PHP число не "вычисляется", а просто из строки выбрасывается мусор, как и регулярка делает). ну, и последнее: при использовании intval пользователь получит "кукиш", даже если в строку попадет, скажем, пробел(если номер будет копироваться откуда-то - вполне вероятно; если вводиться вручную - ещё вероятнее); регулярка вычистит мусор и все нормально - проверяем на валидность; intval же радикально заявит "я с таким работать не буду"(впрочем, уверен, ты и сам знаешь принцип работы, просто с регуляркой человекозаботливее выходит)
PM MAIL   Вверх
bars80080
Дата 7.5.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(gta4kv @  7.5.2009,  19:50 Найти цитируемый пост)
А номера бланков сменить нельзя? 

 smile вы такие весёлые однако. по одному моему слову все авиакомпании страны проголосуют за изменение стандартов и перейдут на новые бланки...


Цитата(skyboy @  7.5.2009,  20:04 Найти цитируемый пост)
просто с регуляркой человекозаботливее выходит

у меня где-то там тримируется по-умолчанию, а если внутри - то фиг знает, может так положено или он вообще имел другое ввиду. в моём случае лучше перебдеть, чем не до бдеть. вдруг система услужливо подставит другой бланк, а потом статистика не сойдётся? так, после того как они заявляются ко мне, "де ошибки у тебя", то они уходят с созерцанием своих кривых рук, а я вежливо киваю, "ну не огорчайтесь, с кем не бывает". к тому же у меня хватает гемора с отчётностью

я спросил: что есть номер? число? ну и ладно, получайте жёсткое число. зато поиск хорошо работает.
и gta4kv, отчёты хорошо группируются. ведь как бы тогда пришлось выписывать отчёт, где нужно было бы составить наборы типа 

QWE-6789456100-ASD - QWE-6789456120-ASD
QWE-6789456130-ASD - QWE-6789456135-ASD
QWE-6789456140-ASD - QWE-6789456150-ASD

сколько бы дополнительных действий пришлось бы совершить
PM MAIL WWW   Вверх
gta4kv
Дата 7.5.2009, 22:12 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



йопт, я пока не телепат, а тока учусь, и задачу я твою не разгадал =)
PM MAIL   Вверх
ksnk
Дата 7.5.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Если на цифры проверить - есть функция ctype_digit Всяко быстрее, чем регулярка.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bars80080
Дата 8.5.2009, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да, но она работает строго к типу. по сути дела мне надо выкидывать всякие типа 0x789, 345.45, 3е4, но не '567'
PM MAIL WWW   Вверх
ksnk
Дата 8.5.2009, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Процитирую пример из доки:
Код

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "The string $testcase consists of all digits.\n";
    } else {
        echo "The string $testcase does not consist of all digits.\n";
    }
}
?>

Цитата

The above example will output:
The string 1820.20 does not consist of all digits.
The string 10002 consists of all digits.
The string wsl!12 does not consist of all digits.



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.