Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вес переменной
Форумы портала PHP.SU » » Вопросы новичков » Вес переменной

Страниц (1): [1]
 

1. Tox - 01 Марта, 2012 - 19:27:51 - перейти к сообщению
Такая ситуация. Есть форма, клиент через нее отправляет текст. Метод Post. Какая функция проверяет, так сказать, вес "переменной"? Да, можно использовать strlen, но она не подойдет, нужно именно значение в байтах. Да, я долго гулил, не нашел.
2. alexiy - 01 Марта, 2012 - 19:35:18 - перейти к сообщению
memory_get_usage();

что-то о ней слышал, но не помню точно, мож поможет...
3. Данил_123 - 01 Марта, 2012 - 19:36:11 - перейти к сообщению
1 символ = 1 байт
PS: Зависит от кодировки
4. Tox - 01 Марта, 2012 - 19:39:16 - перейти к сообщению
Данил_123 пишет:
1 символ = 1 байт
Unicode: 1 символ = 2 байта

да я понимаю, но надо точно определить. Да, можно записать в файл, потом "взвесить", но если пользователь отправит на сервер 5 произведений "война и мир"? а если пользователей таких будет >100? вот поэтому я хочу проверять форму, желательно без записи на жесткий
5. Данил_123 - 01 Марта, 2012 - 19:41:58 - перейти к сообщению
через пост отправить роман? Не понял а так вот
6. Tox - 01 Марта, 2012 - 19:44:34 - перейти к сообщению
я в общем говорю. никто же не знает, что клиент отправит через форму, точнее, какое кол-во инфы.
(Добавление)
вопрос снят, поискав в phpinfo можно найти волшебные
post_max_size
7. Данил_123 - 01 Марта, 2012 - 19:52:31 - перейти к сообщению

задавайте вопрос правильно, не как измерить вес переменной, а как ограничить
8. Tox - 01 Марта, 2012 - 19:54:21 - перейти к сообщению
хорошо, как измерить вес переменной? уверен, это пригодится
9. Bio man - 01 Марта, 2012 - 19:58:23 - перейти к сообщению
Tox пишет:
как измерить вес переменной?
определяешь кодировку строки, узнаешь длину строки и в зависимости от кодировки умножаешь на 1 или 2. получишь размер в байтах
10. Tox - 01 Марта, 2012 - 20:00:13 - перейти к сообщению
спасибо, учту
11. caballero - 01 Марта, 2012 - 20:01:48 - перейти к сообщению
Цитата:
хорошо, как измерить вес переменной? уверен, это пригодится

никак и вряд ли это пригодится
ты делаешь форму для отправки и уже должен знать что там за поля
а если файл отправляется то его не измеришь

Цитата:
1 символ = 1 байт

вообще то от 1 до 4
12. Tox - 01 Марта, 2012 - 20:05:18 - перейти к сообщению
ну а текст тоже ведь на мб 40-50 можно отправить
13. Bio man - 01 Марта, 2012 - 20:07:17 - перейти к сообщению
caballero, точняк. но ведь все таки можно узнать размер переменной, только операция может занять больше ресурсов чем сама переменная. кстати вот убедился
wiki пишет:
в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт (на деле, только до 4 байт, поскольку в Юникоде нет символов с кодом больше 10FFFF, и вводить их в будущем не планируется), в которых первый байт всегда имеет вид 11xxxxxx, а остальные — 10xxxxxx.
14. Мелкий - 01 Марта, 2012 - 21:02:49 - перейти к сообщению
Tox пишет:
Да, можно использовать strlen, но она не подойдет, нужно именно значение в байтах.

Именно strlen вам размер строкового значения в байтах и вернёт. Т.к. символы она считать не умеет.
Но учтите, что в следующих ветках PHP это намерены исправить.

 

Powered by ExBB FM 1.0 RC1