Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

Tôi đang cố đọc một dòng cụ thể từ tệp văn bản bằng PHP. Đây là tệp văn bản:

foo  
foo2

Làm thế nào tôi có được nội dung của dòng thứ hai bằng PHP? Điều này trả về dòng đầu tiên:


.. nhưng tôi cần cái thứ hai.

Mọi sự trợ giúp sẽ rất được trân trọng

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

Hỏi ngày 25 tháng 4 năm 2011 lúc 5:22Apr 25, 2011 at 5:22

$myFile = "4-24-11.txt";
$lines = file($myFile);//file in to an array
echo $lines[1]; //line 2

Tệp - Đọc toàn bộ tệp vào một mảng

Máy xay

281K52 Huy hiệu vàng429 Huy hiệu bạc487 Huy hiệu đồng52 gold badges429 silver badges487 bronze badges

Đã trả lời ngày 25 tháng 4 năm 2011 lúc 5:25Apr 25, 2011 at 5:25

7

OMG Tôi đang thiếu 7 đại diện để đưa ra nhận xét. Đây là bình luận của @Raptor's & @TOMM, vì câu hỏi này vẫn xuất hiện cao trong Google SERPS.

Anh ấy hoàn toàn đúng. Đối với các tệp nhỏ


4 là hoàn toàn tốt. Đối với các tệp lớn, tổng số các mảng PHP B/C của Overkill, nó ăn bộ nhớ như điên.

Tôi chỉ chạy một bài kiểm tra nhỏ với *.csv với kích thước tệp là ~ 67MB (1.000.000 dòng):

$t = -microtime(1);
$file = '../data/1000k.csv';
$lines = file($file);
echo $lines[999999]
    ."\n".(memory_get_peak_usage(1)/1024/1024)
    ."\n".($t+microtime(1));
//227.5
//0.22701287269592
//Process finished with exit code 0

Và vì không có ai đề cập đến nó, tôi đã thử


5, mà tôi thực sự vừa mới khám phá ra cho chính mình.

$t = -microtime(1);
$file = '../data/1000k.csv';
$spl = new SplFileObject($file);
$spl->seek(999999);
echo $spl->current()
    ."\n".(memory_get_peak_usage(1)/1024/1024)
    ."\n".($t+microtime(1));
//0.5
//0.11500692367554
//Process finished with exit code 0

Đây là trên máy tính để bàn Win7 của tôi để nó không đại diện cho môi trường sản xuất, nhưng vẫn ... khá khác biệt.

Đã trả lời ngày 5 tháng 7 năm 2015 lúc 21:46Jul 5, 2015 at 21:46

Nimmneunnimmneunnimmneun

1.10914 Huy hiệu bạc16 Huy hiệu đồng14 silver badges16 bronze badges

2

Nếu bạn muốn làm theo cách đó ...

$line = 0;

while (($buffer = fgets($fh)) !== FALSE) {
   if ($line == 1) {
       // This is the second line.
       break;
   }   
   $line++;
}

Ngoài ra, hãy mở nó bằng


6 và đăng ký dòng với

7.

Đã trả lời ngày 25 tháng 4 năm 2011 lúc 5:25Apr 25, 2011 at 5:25

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

OMG Tôi đang thiếu 7 đại diện để đưa ra nhận xét. Đây là bình luận của @Raptor's & @TOMM, vì câu hỏi này vẫn xuất hiện cao trong Google SERPS.alex

Anh ấy hoàn toàn đúng. Đối với các tệp nhỏ


4 là hoàn toàn tốt. Đối với các tệp lớn, tổng số các mảng PHP B/C của Overkill, nó ăn bộ nhớ như điên.197 gold badges867 silver badges975 bronze badges

2

Tôi chỉ chạy một bài kiểm tra nhỏ với *.csv với kích thước tệp là ~ 67MB (1.000.000 dòng):

$file = new SplFileObject("filename");
if (!$file->eof()) {
     $file->seek($lineNumber);
     $contents = $file->current(); // $contents would hold the data from line x
}

Và vì không có ai đề cập đến nó, tôi đã thử


5, mà tôi thực sự vừa mới khám phá ra cho chính mình.Feb 25, 2016 at 21:15

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

Đây là trên máy tính để bàn Win7 của tôi để nó không đại diện cho môi trường sản xuất, nhưng vẫn ... khá khác biệt.Phil

Đã trả lời ngày 5 tháng 7 năm 2015 lúc 21:468 gold badges58 silver badges103 bronze badges

1

Nimmneunnimmneun

$handle = @fopen('test.txt', "r");

if ($handle) { 
   while (!feof($handle)) { 
       $lines[] = fgets($handle, 4096); 
   } 
   fclose($handle); 
} 


print_r($lines);

1.10914 Huy hiệu bạc16 Huy hiệu đồng

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

Nếu bạn muốn làm theo cách đó ...

Ngoài ra, hãy mở nó bằng


6 và đăng ký dòng với

7.32 gold badges108 silver badges208 bronze badges

AlexalexApr 25, 2011 at 5:32

468K197 Huy hiệu vàng867 Huy hiệu bạc975 Huy hiệu Đồngbalanv

Tôi sẽ sử dụng lớp splfileobject ...27 gold badges90 silver badges137 bronze badges

1

$myFile = "4-21-11.txt";
$fh = fopen($myFile, 'r');
while(!feof($fh))
{
    $data[] = fgets($fh);  
    //Do whatever you want with the data in here
    //This feeds the file into an array line by line
}
fclose($fh);

Đã trả lời ngày 25 tháng 2 năm 2016 lúc 21:15Apr 25, 2011 at 5:27

PhilPhilPhoenix

3.9498 Huy hiệu vàng58 Huy hiệu bạc103 Huy hiệu Đồng1 gold badge19 silver badges13 bronze badges

2

Bạn có thể sử dụng các mục sau để có tất cả các dòng trong tệp



8 cho dòng thứ hai của bạn

Mắt rắnDec 19, 2016 at 2:54

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

15.8K32 Huy hiệu vàng 108 Huy hiệu bạc208 Huy hiệu đồngcantelope

Đã trả lời ngày 25 tháng 4 năm 2011 lúc 5:327 silver badges9 bronze badges

Balanvbalanv


0

10,5K27 Huy hiệu vàng90 Huy hiệu bạc137 Huy hiệu đồng

Đã trả lời ngày 25 tháng 4 năm 2011 lúc 5:27Oct 12, 2015 at 11:42

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

Phoenixphoenixmineroot

4,4281 Huy hiệu vàng19 Huy hiệu bạc13 Huy hiệu đồng15 silver badges23 bronze badges

1

Câu hỏi này khá cũ, nhưng đối với bất kỳ ai đối phó với các tệp rất lớn, đây là một giải pháp không liên quan đến việc đọc mọi dòng trước đó. Đây cũng là giải pháp duy nhất hoạt động trong trường hợp của tôi cho một tệp với ~ 160 triệu dòng.


1

Đã trả lời ngày 25 tháng 4 năm 2011 lúc 5:25Apr 25, 2011 at 5:25

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

OMG Tôi đang thiếu 7 đại diện để đưa ra nhận xét. Đây là bình luận của @Raptor's & @TOMM, vì câu hỏi này vẫn xuất hiện cao trong Google SERPS.Rikesh

Anh ấy hoàn toàn đúng. Đối với các tệp nhỏ


4 là hoàn toàn tốt. Đối với các tệp lớn, tổng số các mảng PHP B/C của Overkill, nó ăn bộ nhớ như điên.14 gold badges77 silver badges86 bronze badges

0

Tôi chỉ chạy một bài kiểm tra nhỏ với *.csv với kích thước tệp là ~ 67MB (1.000.000 dòng):

Và vì không có ai đề cập đến nó, tôi đã thử


5, mà tôi thực sự vừa mới khám phá ra cho chính mình.


2

Đây là trên máy tính để bàn Win7 của tôi để nó không đại diện cho môi trường sản xuất, nhưng vẫn ... khá khác biệt.Nov 3, 2015 at 1:07

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

Đã trả lời ngày 5 tháng 7 năm 2015 lúc 21:46


3

NimmneunnimmneunNov 28, 2015 at 15:17

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

1.10914 Huy hiệu bạc16 Huy hiệu đồngdrugan

Nếu bạn muốn làm theo cách đó ...8 silver badges10 bronze badges

Ngoài ra, hãy mở nó bằng


6 và đăng ký dòng với

7.


9

AlexalexJan 27, 2021 at 17:44

Hướng dẫn read specific line from file php - đọc dòng cụ thể từ tệp php

Làm thế nào để đọc các dòng tệp trong PHP?

Đọc một tệp: Chúng tôi sẽ đọc tệp bằng cách sử dụng hàm fopen ().Hàm này được sử dụng để đọc và mở một tập tin.Cú pháp: fopen ("tên tệp", access_mode);fopen() function. This function is used to read and open a file. Syntax: fopen("filename", access_mode);

Làm thế nào để đọc dòng dữ liệu theo dòng từ tệp văn bản trong PHP?

Php $ fh = fopen ('fileName.txt', 'r');while ($ line = fgets ($ fh)) {// // echo ($ line);} fclose ($ fh);? txt','r'); while ($line = fgets($fh)) { // <... Do your work with the line ...> // echo($line); } fclose($fh); ?> This will give you a line by line read.. read the notes at php.net/fgets regarding the end of line issues with Macs.

Khi đọc và ghi tệp trong PHP, chức năng nào đọc một dòng tại một thời điểm?

Hàm fgets () được sử dụng để đọc một dòng từ một tệp.fgets() function is used to read a single line from a file.