pg_lo_tell

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

pg_lo_tell Devuelve la posición actual en un objeto grande de PostgreSQL

Descripción

pg_lo_tell(PgSql\Lob $lob): int

pg_lo_tell() devuelve la posición actual (desde el inicio) del puntero de lectura en el objeto grande large_object.

Para utilizar una interfaz con un objeto grande, es necesario incluirlo en un bloque de transacción.

Parámetros

lob

Una instancia PgSql\Lob, devuelta por pg_lo_open().

Valores devueltos

La posición actual del puntero (en número de bytes) desde el inicio del objeto grande. Si hay un error, el valor devuelto será negativo.

Historial de cambios

Versión Descripción
8.1.0 El parámetro lob ahora espera una instancia de PgSql\Lob ; anteriormente, se esperaba un resource.

Ejemplos

Ejemplo #1 Ejemplo con pg_lo_tell()

<?php
$doc_oid
= 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
// Salta los primeros 50000 bytes
pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
// Se verifica cuántos bytes se han saltado
$offset = pg_lo_tell($handle);
echo
"La posición del puntero es: $offset";
pg_query($database, "commit");
?>

El ejemplo anterior mostrará :

La posición del puntero es: 50000

Ver también

  • pg_lo_seek() - Modifica la posición en un objeto de gran tamaño

add a note

User Contributed Notes 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