PHP Conference Nagoya 2025

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

通过 pg_lo_open() 返回的 PgSql\Lob 实例。

返回值

当前查找距离大对象开头的偏移量(字节数)。如果有错误,返回值为负。

更新日志

版本 说明
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
"Seek position is: $offset";
pg_query($database, "commit");
?>

以上示例会输出:

Seek position is: 50000

参见

添加备注

用户贡献的备注 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