pg_lo_tell

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

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

Описание

int pg_lo_tell ( resource $large_object )

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

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

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

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

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

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

Примеры

Пример #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($handle50000PGSQL_SEEK_SET);
   
// Проверим, на сколько мы отступили
   
$offset pg_lo_tell($handle);
   echo 
"Seek position is: $offset";
   
pg_query($database"commit");
?>

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

Seek position is: 50000

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

Версия Описание
5.6.0 Добавлена поддержка больших 64-битных объектов PostgreSQL 9.3. И клиент и сервер должны поддерживать PostgreSQL 9.3, и PHP должен быть собран 64-битным и использовать 64-битные большие объекты.

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

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

add a note add a note

User Contributed Notes 1 note

up
0
Marv-CZ
7 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