Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/56: Рейтинг темы: голосов - 56, средняя оценка - 4.55
61 / 60 / 7
Регистрация: 25.05.2011
Сообщений: 388
1

Тип данных BLOB или как раскодировать двоичный код?

07.08.2011, 20:10. Показов 10705. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
$text = 'Hello world';
$i = 1; 
$n = strlen($text);
while ($i < $n) {
    $binary .= decbin(ord($text[$i]));
    $i++;
}
echo $binary; // получим строку нулей и единичек
решил использовать тип данных blob, кодирую текст в бинарный код, проблема в том - как получить текст обратно? обратная функции ord является функция chr, но нужно брать по 8 ноликов и единичек для перевода, как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2011, 20:10
Ответы с готовыми решениями:

Как записать в SQL тип данных BLOB?
как описать текстовое поле в языке SQL чтобы оно содержало &gt;255 (больше чем VARCHAR)? гдето нашёл...

Как сделать тип данных или уже есть такой тип данных который состоит из всех печатыемых символов?
Как сделать тип данных или уже есть такой тип данных который состоит из всех печатыемых символов?...

Какой тип поля использовать - Blob или varchar
Добрый день. Помогите с выбором поля. Хранится в нем будет текст от 1 символа до ... и вот тут я...

Report Builder, тип данных blob
пишу формулу для столбца: function fotoFormula return Number is photo RAW(32767); begin ...

5
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
07.08.2011, 21:08 2
bindec()
Только у тебя потери получаются... ты же ведущие нули теряешь. В твоём случае надо делать
PHP
1
$binary .= str_pad(decbin(ord($text[$i])),8,'0',STR_PAD_LEFT);
А что бы раскодировать надо строку поделить по 8 символов в массив и потом каждый элемент массива перевести в символ:
PHP
1
2
3
4
$arr = str_split($binary,8);
$str = '';
for($i=0;$i<sizeof($arr);$i++)
  $str .= chr(bindec($arr[$i]));
Только не пойму, при чём тут BLOB... ведь тут получается обычная строка.
1
61 / 60 / 7
Регистрация: 25.05.2011
Сообщений: 388
07.08.2011, 21:19  [ТС] 3
так ведь блоб и есть двоичный код? т.е. нолики и единички
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
07.08.2011, 23:00 4
Но не в текстовом представлении. В принципе, текст туда тоже можно запихнуть, но это как из пушки по воробью. Для обычного текста можно использовать CHAR или VARCHAR, если текст короткий... или TEXT, MEDIUMTEXT, если текст достаточно большой. А BLOB используется для хранения таких данных, где символы могут быть не только текстовыми. Например, всякие картинки можно там хранить и т.п.

В общем, двоичные данные - это не текст, который состоит из нулей и единиц... это данные с любыми символами от 0 до 255.
0
61 / 60 / 7
Регистрация: 25.05.2011
Сообщений: 388
08.08.2011, 14:37  [ТС] 5
т.е. нет смысла хранить текст в бинарном виде? просто слышал работает быстрее
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
08.08.2011, 14:51 6
Текст он изначально в бинарном виде. Эти преобразования, которые ты хотел делать только увеличат объём хранимых данных в 8 раз и будут создавать постоянную нагрузку на сервер.
Бинарный вид - это не текст из ноликов и единичек... бинарный вид - это данные как они есть. Например, ты читаешь какой-нибудь exe-файл. Это бинарный вид. Там присутствуют различные символы, некоторые из которых даже не читаются в текстовом редакторе. Поэтому бинарные файлы иногда преобразуют в текстовый вид, что бы, например, передать по электронной почте, т.к. протоколы SMTP и POP3, которые используются в электронной почте, понимают только текстовые данные. Поэтому данные преобразовывают из бинарного вида в base64.
Я не знаю, как это правильнее сформулировать... можешь почитать ещё в википедии
1
08.08.2011, 14:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2011, 14:51
Помогаю со студенческими работами здесь

Ошибка при выводе картинки, тип данных BLOB
Здравствуйте, возникла такая проблема. При выводе картинки из бд появляется ошибка, на одном форуме...

Вывод данных из поля, которое имеет тип BLOB
Добрый день,подскажите пожалуйста в чем проблема,запись в базу проходит успешно,но с выводом какие...

Как раскодировать код JS
Как раскодировать код JS: http://cellcraft.io/js/gameclients.js?version=7

Как раскодировать код PHP
Всем добрый вечер. Помогите, пожалуйста, раскодировать код php. Похожие темы уже посмотрела, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru