PHP Conference Japan 2024

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 实例;以前,期望的是一个 资源

示例

示例 #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");
?>

以上示例将输出

Seek position is: 50000

参见

添加注释

用户贡献的注释 1 条注释

Marv-CZ
14 年前
获取大对象大小的函数

<?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