dr.nomore
30.11.2013 - 16:22
Кстати, я как-то заглядывал в сырец по архивированию и не сразу, но позже сообразил что в скриптовых языках нормальных методов чтения файлов быть не может.
Нашел на vb в кодах извлечения тумбов из разных форматов, в частности из psd (фотошоп). На тот момент Адоба отчаявшись наладить отображение тубмов в Винде попросту ликвидировала их представление, но оставила в файлах, причем независимо от настроек самой проги. Ну вот, берешь из документации о формате файла все полезные структуры, в частности:
Private Type PSDHEADER
Signature As String * 4
Version As Integer
Reserved(0 To 5) As Byte
Channels As Integer
rows As Long
Columns As Long
Depth As Integer
Mode As Integer
ColorModeData As Long
End Type
' и вперде. Вот смотрите как в нее все читается:
Dim ph As PSDHEADER
hFile = FreeFile()
Open psdFileName For Binary Access Read Lock Write As #hFile
' Get the file header
Get #hFile, 1, ph
' готово, можно ковырять
ph.Version = ToLittleEndianI(ph.Version)
dr.nomore
30.11.2013 - 16:25
Цитата (Invis1ble @ 30.11.2013 - 16:09) |
я вижу в html "placeholder="10 знаков" maxlength="10"" и делаю вывод, что тебе надо посчитать длину текста в символах. mb_strlen для этого подходит. |
Но там же было написано про целое. Из целого о 10 знаках не узнаешь. То, что там написано - оно уже написано и измерять его не надо.
dr.nomore
30.11.2013 - 16:31
Цитата |
в функции mb_* вообще-то можно передать любую кодировку |
У нас и числа теперь в тексте кодировке подвергаются?
Про это "отображение" я несколько раз читал и ни разу ничего не понял. Кроме того что творец таблицы определяет ограничения для отображения значений которые очевидно берутся из ограничений интерфейса.
Ну вот, если парсер сам воткнул 10, значит 10, логично. Что, конечно, не означает как я понимаю возможности записать туда 9 миллиардов.
dr.nomore
30.11.2013 - 16:38
Цитата (Aeq @ 30.11.2013 - 16:12) |
я если честно сдаюсь уже писать ответы на все тезисы dr.nomore. скучно уже стало.. |
Забейте. Кроме нас тут все равно никого.
Я все понимаю, конечно, но факт в том, что такие классы сами по себе и редко кто возьмется их юзать, поскольку выучить sql гораздо полезнее чем изучать очередную рамку.
цифры в скобках у интов нужны исключительно для выравнивания по правому краю чисел при выводе моноширинным шрифтом.
про mb_* я писал в отношении строк
Цитата |
Длина строки из 10 символов может быть померена с учетом заданной кодировки. Которая 1) может не совпадать с кодировкой данных из БД |
в отношении чисел
Цитата |
2) число это не последовательность символов. |
естессно mb_* функции нафиг не нужны
Цитата (dr.nomore @ 30.11.2013 - 16:38) |
Цитата (Aeq @ 30.11.2013 - 16:12) | я если честно сдаюсь уже писать ответы на все тезисы dr.nomore. скучно уже стало.. |
Забейте. Кроме нас тут все равно никого.
Я все понимаю, конечно, но факт в том, что такие классы сами по себе и редко кто возьмется их юзать, поскольку выучить sql гораздо полезнее чем изучать очередную рамку.
|
я никогда и не предлагал юзать этот класс не зная sql. надо будет даже в ридми так и написать, что сначала идите учить sql
dr.nomore
30.11.2013 - 16:55
Цитата |
цифры в скобках у интов нужны исключительно для выравнивания по правому краю чисел при выводе моноширинным шрифтом. |
А, точно, для консоли. Ну наконец-то разобрался. Спасибо.
Цитата (dr.nomore @ 30.11.2013 - 16:55) |
Цитата | цифры в скобках у интов нужны исключительно для выравнивания по правому краю чисел при выводе моноширинным шрифтом. |
А, точно, для консоли. Ну наконец-то разобрался. Спасибо.
|
!
dr.nomore
вот лучше предложите вариант, как в пхп организовать фильтрацию интов перед сохранением в базу, в плане кол-ва байтов, т.е. tinyint, smallint, int, bigint. Как лучше написать фильтр в пхп, или лучше просто ловить эксепшн из БД если выходит за границы и переводить его в удобочитаемом виде пользователю? что скажете?
Invis1ble
30.11.2013 - 17:10
Aeqделать запрос (с возможной установкой коннекта) и ловить ексешпн по идее гораздо более затратная операция, чем сразу провести валидацию
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Цитата (Invis1ble @ 30.11.2013 - 17:10) |
Aeq делать запрос (с возможной установкой коннекта) и ловить ексешпн по идее гораздо более затратная операция, чем сразу провести валидацию |
согласен, но у мистера dr.nomore вероятно свое видение. хочу его услышать. это первое. второе: т.к. больше склоняюсь к фильтрации до запроса в БД - интересно услышать как лучше реализовать такой фильтр, в пхп имеем инт который зависит от ОСи 32/64 бита, а в мускуле объявлен tinyint, как будем его фильтровать? нужно 2 решения, одно silent, т.е. по-тихому урезает значение до 1байта, второе - эксепшен если выходит за рамки, т.к. в зависимости от ситуации оба решения имеют право на существование
кстати, я написал тесты для основных методов схемы. не писал тесты на разные фильтры, но есть тест на то что они запускаются )) вобщем юзать уже можно. В ближайшее время напишу описание с примерами. А пока нет доков с примерами, суть понять можно по следующему коду:
$trees = $schema->tree()->limit(10)->fetchAll();
$schema->fruit()->refs($trees)->fetchAll();
$schema->tree_extra()->refs($trees)->fetchAll();
foreach ($trees as $tree) {
echo $tree->name, '<br>';
echo $tree->tree_extra->height, '<br>';
foreach ($tree->fruit as $fruit) {
echo $fruit->name, '<br>';
}
}
$tree = $schema->tree->get(1);
echo $tree->name, '<br>';
echo $tree->tree_extra()->height, '<br>';
foreach ($tree->fruit() as $fruit)
{
echo $fruit->name, '<br>';
}
$fruit = $schema->fruit->create();
$fruit->name = 'new fruit';
$fruit->save();
echo $fruit->id, '<br>';
$fruit->name = 'new fruit updated';
$fruit->save();
все что после -> выпадает в автокомплите в IDE, включая имена полей у строк после выборок с fetchAll. проверял в NetBeans, и зная PhpStorm могу утверждать что там тоже с этим все ок.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.