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;
}
?>
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
pg_lo_tell — Returns current seek position a of large object
$large_object
) : intpg_lo_tell() returns the current position (offset from the beginning) of a large object.
To use the large object interface, it is necessary to enclose it within a transaction block.
The current seek offset (in number of bytes) from the beginning of the large object. If there is an error, the return value is negative.
Example #1 pg_lo_tell() example
<?php
$doc_oid = 189762345;
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$handle = pg_lo_open($database, $doc_oid, "r");
// Skip first 50000 bytes
pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
// See how far we've skipped
$offset = pg_lo_tell($handle);
echo "Seek position is: $offset";
pg_query($database, "commit");
?>
Exemplul de mai sus va afișa:
Seek position is: 50000
Versiune | Descriere |
---|---|
5.6.0 | Added PostgreSQL 9.3's 64bit large object support. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object. |