powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как отформатировать вывод blob
9 сообщений из 9, страница 1 из 1
Как отформатировать вывод blob
    #39411335
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Понадобилось вывести содержимое blob(txt) через php, не могу найти как его отформатировать в ячейке таблицы, если какой то способ?
А то выглядит не очень красиво
.

Код на всякий случай
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$query="select connection, module, params from device_actions  where connection = $NUMBER and actions = 'WRITE'";
$result=ibase_query($connection,$query) or die(ibase_errmsg());
while($row = ibase_fetch_assoc($result)) 
{
$CONNECTION = $row['CONNECTION'];
$MODULE = $row['MODULE'];
$PARAMS = $row['PARAMS'];
$PARAMS2 = ibase_blob_open($PARAMS);
echo'<tr><td>'.$CONNECTION.'</td><td>'.$MODULE.'</td><td>'.ibase_blob_get($PARAMS2,512).'</td>';

}
ibase_free_result($result);
ibase_close($connection); 
?>

...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411338
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С этим вопросом логичнее идти на форум по PHP.
"Тут дельфи никто не знает"
:)
...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411339
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks, не обязательно, Симонов с php работает, Dorin Marcoci активно пилит на php, правда с PDO.
...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411346
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотря что ты хочешь получить.
Простейшая версия - разбиваешь строку по пробелам, а потом собираешь через br-ки.
Разбиваем: explode .
Собираем: implode .
Соответственно код следующий:
Код: php
1.
2.
$blob = ibase_blob_get($PARAMS2,512);
$cell_val = implode('<br/>', explode(' ', $blob));


Если версия PHP <= 5.3, то вторую строку нужно разбить на 2 - возвращаемый массив не мог использоваться в качестве параметра.

П. С. У PHP очень хорошая дока, к тому же переведена на русский почти полностью. Сам язык правда...
...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411371
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonal,спасибо
а как вывести в таком виде:

PROC_NAME=DEVICE_TXT_SCALE_LOAD
DATASAMPLE=A,[Id,0,4],[BarCode,7,1],[PriceR,0,8],0,0,[LifeTime,0,3],[Name,0,80]
LSTMSGSAMPLE=I;[Id,0,4];[Msg,0,80]
ISMSG=FALSE
MSGFIELD=COMMENT
MSGTABLE=CARDSCLA
MAXPLU=0
FILEPATH=\\10.10.1.11\scales
SHOWOK=1
FILENAME=204.txt

$cell_val = implode('\r', explode(';', $blob)); и $cell_val = implode(';<br>', explode(';', $blob)); не помогли
...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411392
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

1. Открытые BLOB надо закрывать. См. функцию ibase_blob_close
2. Есть такая волшебная константа IBASE_FETCH_BLOBS (IBASE_TEXT в старых версиях), позволяет извлечь болб целиком а не получать его идентификатор. Т.е. сразу можешь обращаться с полем блоба как с текстом.

Код: php
1.
$row = ibase_fetch_assoc($result, IBASE_TEXT)



что касается форматирования, то по мне так достаточно заменить пробел на <br>

Код: php
1.
$text = str_replace(' ', '<br>', $paras)
...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411402
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, при

$PARAMS = $row['PARAMS'];
$PARAMS2 = ibase_fetch_assoc($PARAMS, IBASE_TEXT );

$text = str_replace(' ', '<br>', $PARAMS2);

echo'<tr><td>'.$CONNECTION.'</td><td>'.$MODULE.'</td><td>'.$text.'</td>';

получаю Warning: ibase_fetch_assoc() expects parameter 1 to be resource.
...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411410
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ну ты бы доку к функции почитал что ли. Она же не блоб извлекает а ассоциативный массив значений полей. Когда передана константа IBASE_TEXT вместо идентификатора блоба извлекается его содержимое. Всё жевать надо :-(

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$query="select connection, module, params from device_actions  where connection = $NUMBER and actions = 'WRITE'";
$result=ibase_query($connection,$query) or die(ibase_errmsg());
while($row = ibase_fetch_assoc($result, IBASE_TEXT)) 
{
$CONNECTION = $row['CONNECTION'];
$MODULE = $row['MODULE'];
$PARAMS = $row['PARAMS'];
$text = str_replace(' ', '<br>', $PARAMS)
echo'<tr><td>'.$CONNECTION.'</td><td>'.$MODULE.'</td><td>'. $text .'</td>';

}
ibase_free_result($result);
ibase_close($connection); 



З.Ы. В PHP как и других C-подобных языках переменные в верхнем регистре делать не принято.
...
Рейтинг: 0 / 0
Как отформатировать вывод blob
    #39411419
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

ну ты бы доку к функции почитал что ли. Она же не блоб извлекает а ассоциативный массив значений полей. Когда передана константа IBASE_TEXT вместо идентификатора блоба извлекается его содержимое. Всё жевать надо :-(


Спасибо. Насчет жевать - да, часто бывает туплю, даже с открытой докой. Надо наставника искать, чтобы по пальцам линейкой бил носом тыкал.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как отформатировать вывод blob
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]