PHP 8.4.2 Released!

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_lo_tell Возвращает текущее положение внутреннего указателя большого объекта

Описание

pg_lo_tell(PgSql\Lob $lob): int

pg_lo_tell() возвращает текущую позицию (отступ от начала) внутреннего указателя большого объекта.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Список параметров

lob

Экземпляр класса PgSql\Lob, который вернула функция pg_lo_open().

Возвращаемые значения

Текущая позиция внутреннего указателя (количество байт от начала) большого объекта. В случае возникновения ошибки функция вернёт отрицательное значение.

Список изменений

Версия Описание
8.1.0 Параметр lob теперь ожидает экземпляр класса PgSql\Lob; раньше параметр ожидал ресурс (resource).

Примеры

Пример #1 Пример использования pg_lo_tell()

<?php
$doc_oid
= 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
// Пропустить первые 50000 байт
pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
// Проверим, на сколько мы отступили
$offset = pg_lo_tell($handle);
echo
"Текущее положение внутреннего указателя: $offset";
pg_query($database, "commit");
?>

Результат выполнения приведённого примера:

Текущее положение внутреннего указателя: 50000

Смотрите также

  • pg_lo_seek() - Перемещает внутренний указатель большого объекта

Добавить

Примечания пользователей 1 note

up
0
Marv-CZ
14 years ago
Function to take a large object size:

<?php
function pg_lo_size ($lo) {
$pos = pg_lo_tell ($lo);
pg_lo_seek ($lo, 0, PGSQL_SEEK_END);
$size = pg_lo_tell ($lo);
pg_lo_seek ($lo, $pos, PGSQL_SEEK_SET);
return
$size;
}
?>
To Top