Php/docs/function.pg-lo-tell

提供:Dev Guides
< Php
移動先:案内検索

pg_lo_tell

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

pg_lo_tell ラージオブジェクトのカレントのシーク位置を返す


説明

pg_lo_tell ( resource $large_object ) : int

pg_lo_tell() は、ラージオブジェクトのカレントの位置 (先頭からのオフセット)を返します。

ラージオブジェクトインターフェイスは、トランザクションブロックの中で 使用する必要があります。


パラメータ

large_object
pg_lo_open() が返す PostgreSQL の ラージオブジェクト(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 "Seek position is: $offset";   pg_query($database, "commit");?>

上の例の出力は以下となります。


Seek position is: 50000

変更履歴

バージョン 説明
5.6.0 PostgreSQL 9.3 以降での 64 ビットラージオブジェクトに対応しました。

これを使うには、クライアントとサーバーがいずれも PostgreSQL 9.3 以降であることと、 PHP が 64 ビット版であることが必要です。


参考

  • pg_lo_seek() - ラージオブジェクトの位置をシークする