PHP Conference Japan 2024

streamWrapper::stream_seek

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

streamWrapper::stream_seek搜尋串流中的特定位置

說明

public streamWrapper::stream_seek(int $offset, int $whence = SEEK_SET): bool

這個方法會在回應 fseek() 時被呼叫。

資料流的讀/寫位置應根據 offsetwhence 進行更新。

參數

offset

要搜尋的資料流偏移量。

whence

可能的值

  • SEEK_SET - 將位置設定為等於 offset 位元組。
  • SEEK_CUR - 將位置設定為目前位置加上 offset
  • SEEK_END - 將位置設定為檔案結尾加上 offset

注意目前的實作永遠不會將 whence 設定為 SEEK_CUR;相反地,此類搜尋會在內部轉換為 SEEK_SET 搜尋。

傳回值

如果位置已更新,則傳回 true,否則傳回 false

注意事項

注意:

如果未實作,則假設傳回值為 false

注意:

成功時,會在呼叫 streamWrapper::stream_seek() 之後直接呼叫 streamWrapper::stream_tell()。如果 streamWrapper::stream_tell() 失敗,則傳回呼叫端函式的值將設定為 false

注意:

並非所有對資料流的搜尋操作都會導致呼叫此函式。PHP 資料流預設啟用讀取緩衝區(另請參閱 stream_set_read_buffer()),並且可以僅透過移動緩衝區指標來執行搜尋。

參見

  • fseek() - 對檔案指標進行搜尋

新增筆記

使用者貢獻的筆記 1 則筆記

fb at tigermedia dot dk
10 年前
請注意,此函式的傳回值是一個布林值,但 fseek 的傳回值是 0 表示成功,-1 表示失敗。

處理檔案時請使用以下實作

function stream_seek($offset, $whence) {
if(0 === fseek($this->_handler, $offset, $whence)){
return true;
}
return false;
}
To Top