簡體   English   中英

如何使用 PHP 讀取大 gz 文件的一部分

[英]How to read portions of a big gz file with PHP

我需要讀取一個大的 txt 文件(超過 1GB)才能提取其中的多個字符串。 使用 gzread,我可以從頭開始讀取 kb 的大小(比如說 1000000)。 但是我怎樣才能讀取文件的下 1000000kb 呢? 有沒有辦法從一個點開始並從那里讀取 1000000kb 直到文件未完成?

$filename = "my_big_file.txt.gz";
$zd = gzopen($filename, "r");
$readfile = gzread($zd,1000000); 
$first_array = explode("IT\\",$readfile);
unset($first_array[0]);
foreach($first_array as $row){
  $full_id = explode(" ",$full_id);
  echo $full_id[0];
  echo "<br>";
}
gzclose($zd);

gzread放在 while 循環中,如下所示:

<?php

$filename = "my_big_file.txt.gz";
$zd = gzopen($filename, "r");
while($readfile = gzread($zd,1000000)) {
    //...your process
}
gzclose($zd);

如果您的意思是:您可以在沒有讀取前一百萬字節的情況下開始讀取 gzip 文件的第二百萬字節,那么答案是否定的。 您不能隨機訪問 gzip 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM