Hàm fseek() trong PHP dùng để làm gì.

24/11/2020 - lượt xem
Chia sẻ
 
Rate this post

Định Nghĩa.

Hàm fseek()sẽ đặt vị trí cho con trỏ tệp tin của file được truyền vào. Vị trí mới sẽ được tính bằng số byte của các kí tự tính từ đầu file.

Cú pháp.

Cú pháp:

fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] ) : int

Trong đó.

  • $handle là file đã được mở trước đó bằng hàm fopen().
  • $offset là vị trí con trỏ tệp tin sẽ đến.
  • $option là tham số mang 1 trong các giá trị sau:
    • SEEK_SET: vị trí $offset tính bằng bytes.
    • SEEK_CUR: vị trí sau cùng sẽ bằng vị trí hiện tại + $offset.
    • SEEK_END: vị trí sau cùng sẽ bằng vị trí cuối của file + $offset.

Giá trị trả về.

  • Hàm fseek() sẽ trả về 0 nếu thành công, nếu thất bại hàm sẽ trả về False.

Ví dụ.

Ví dụ # 1 Một ví dụ đơn giản về fseek()

code:

<?php

$fp = fopen('somefile.txt', 'r');

// read some data
$data = fgets($fp, 4096);

// move back to the beginning of the file
// same as rewind($fp);
fseek($fp, 0);

?>

Ghi chú.

  • Nếu bạn đã mở tệp ở chế độ append  (a hoặc +), mọi dữ liệu bạn ghi vào tệp sẽ luôn được nối, bất kể vị trí tệp và kết quả của việc gọi fseek () sẽ không được xác định.
  • Không phải tất cả các luồng hỗ trợ tìm kiếm. Đối với những người không hỗ trợ tìm kiếm, việc tìm kiếm chuyển tiếp từ vị trí hiện tại được thực hiện bằng cách đọc và loại bỏ dữ liệu; các hình thức tìm kiếm khác sẽ thất bại.

Hàm liên quan.

  • ftell() – Trả về vị trí hiện tại của con trỏ đọc / ghi tệp
  • rewind() – Tua lại vị trí của một con trỏ tệp

Thông tin thêm.

    • nếu bạn đang sử dụng fseek () để ghi dữ liệu
      $fp=fopen($filename,"r+");
      KHÔNG mở tệp ở chế độ “a” (để nối thêm), vì nó đặt con trỏ tệp ở cuối tệp và không cho phép bạn fseek vị trí trước đó trong tệp (nó không dành cho tôi!). Cũng thế, không mở tệp ở chế độ “w” – mặc dù điều này đặt bạn ở phần đầu của tệp – vì nó xóa sạch tất cả dữ liệu trong tập tin.
    • Các tài liệu chính thức chỉ ra rằng không phải tất cả các luồng đều có thể tìm kiếm được. Bạn có thể cố gắng tìm kiếm bằng mọi cách và xử lý thất bại:
      <?php
      if (fseek($stream, $offset, SEEK_CUR) === -1) {
        // whatever
      }
      ?>
      Hoặc, bạn có thể sử dụng hàm stream_get_meta_data:
      <?php
      function fseekable($stream) {
        $meta = stream_get_meta_data($stream);
        return $meta['seekable'];
      }
      ?>

 

Các bạn có thể xem chi tiết hơn trên php.net.

Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm fseek() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm