Tôi có một tệp văn bản hoặc tệp csv, làm cách nào để đọc từng dòng tệp bằng PHP?
Sử dụng hàm fgets[] để đọc từng dòng
Ví dụ dưới đây là mã PHP đọc từng dòng của tệp văn bản
Nếu bạn có một văn bản. txt với nội dung như bên dưới
Đầu ra sau khi chạy tập lệnh PHP sẽ là
1. Dòng 1 2. Dòng 2 3. dòng 3
Trong bài viết sau, chúng ta sẽ đi theo một lộ trình khác với kỹ thuật đọc tệp văn bản bằng PHP trước đây. Thay vào đó, chúng ta sẽ đọc từng dòng một tệp văn bản bằng PHP, in ra từng dòng khi chúng ta lặp qua nội dung
Để đọc từng dòng tệp văn bản demo, chúng tôi sẽ sử dụng lớp SplFileObject
, lớp này đẹp hơn và rõ ràng hơn để sử dụng. Lớp này hồi sinh hoàn toàn việc đọc tệp trong PHP theo kiểu hướng đối tượng. Nó có thể được sử dụng để đọc tệp cũng như các chức năng phổ biến khác như ghi vào tệp
Đối với mục đích của hướng dẫn, đây là dữ liệu được lưu trữ trong tệp văn bản sẽ được đọc từng dòng bằng mã
65 55 23 45 11 22 35 22 44 568 594 33 444 423 983 876 563 634
Hãy đưa lớp SplFileObject
vào hoạt động
PHP
$myFile = new SplFileObject["data.txt"];
while [!$myFile->eof[]] {
echo $myFile->fgets[] . PHP_EOL;
}
- Đầu tiên, chúng ta gọi đến lớp của đối tượng, truyền vào đường dẫn tệp văn bản, trong trường hợp này là dữ liệu. txt
- Thứ hai, chúng tôi sử dụng phương thức đối tượng của
eof[]
để tạo vòng lặp boolean, vòng lặp này sẽ lặp qua dữ liệu cho đến khi đạt đến cuối tệp - Thứ ba, chúng tôi sử dụng một phương thức khác từ đối tượng là
fgets[]
để đọc từng dòng từ tệp khi vòng lặp diễn ra
đầu ra
65 55 23 45 11 22 35 22 44 568 594 33 444 423 983 876 563 634
Và đó là nó. Nếu bạn muốn biết thêm về lớp SplFileObject
thì bạn có thể xem tài liệu tại đây
Chúng ta có thể sử dụng hàm fgets[]
với vòng lặp
";
$a++;
}
fclose[$txt_file];
?>
1 để đọc các tệp văn bản theo từng dòng trong PHP. Hàm trả về một dòng nếu có một dòng và nó trả về false nếu không còn dòng nào để đọc. Phải mất hai tham số. Cú pháp như sauỞ đây,
";
$a++;
}
fclose[$txt_file];
?>
2 giống như một con trỏ tệp trỏ đến một tệp được mở thành công. Tùy chọn ";
$a++;
}
fclose[$txt_file];
?>
3, tùy chọn, biểu thị số byte sẽ được đọcTa có thể dùng hàm
";
$a++;
}
fclose[$txt_file];
?>
4 để đọc file sau đó dùng vòng lặp ";
$a++;
}
fclose[$txt_file];
?>
1 để lặp qua từng dòng với hàm fgets[]
. Chúng tôi có một tệp văn bản ";
$a++;
}
fclose[$txt_file];
?>
7 chứa các nội dung sauHi
How are you
Have a great day
Ví dụ: tạo một biến
";
$a++;
}
fclose[$txt_file];
?>
8 và viết hàm ";
$a++;
}
fclose[$txt_file];
?>
9 trong đó. Mở tệp ";
$a++;
}
fclose[$txt_file];
?>
7 ở chế độ 1 Hi
2 How are you
3 Have a great day
1. Tạo một biến đếm dòng 1 Hi
2 How are you
3 Have a great day
2 và gán giá trị 1 Hi
2 How are you
3 Have a great day
3 cho nó. Sau đó, tạo một vòng lặp ";
$a++;
}
fclose[$txt_file];
?>
1. Bên trong dấu ngoặc đơn của vòng lặp, hãy viết hàm fgets[]
với tham số là 1 Hi
2 How are you
3 Have a great day
6. Gán chức năng cho một biến 1 Hi
2 How are you
3 Have a great day
7 trong vòng lặp. In biến 1 Hi
2 How are you
3 Have a great day
7, nối nó với biến 1 Hi
2 How are you
3 Have a great day
2 bên trong thân vòng lặp. Tăng biến 1 Hi
2 How are you
3 Have a great day
2 và bên ngoài vòng lặp, sử dụng hàm file[$filename, $flag, $context]
1 để đóng luồng tệpMã ví dụ
";
$a++;
}
fclose[$txt_file];
?>
đầu ra
1 Hi
2 How are you
3 Have a great day
Sử dụng hàm file[$filename, $flag, $context]
2 để đọc tệp văn bản theo từng dòng trong PHP
file[$filename, $flag, $context]
Hàm
file[$filename, $flag, $context]
2 đọc toàn bộ tệp thành một mảng. Cú pháp của hàm file[$filename, $flag, $context]
2 như saufile[$filename, $flag, $context]
Ở đây,
file[$filename, $flag, $context]
5 là đường dẫn tệp sẽ được đọc. Tùy chọn file[$filename, $flag, $context]
6 là tùy chọn và nó bao gồm nhiều hằng số khác nhau, chẳng hạn như file[$filename, $flag, $context]
7, file[$filename, $flag, $context]
8 và file[$filename, $flag, $context]
9. Cái thứ ba cũng là tùy chọn, xác định tài nguyên ngữ cảnhHàm
file[$filename, $flag, $context]
2 trả về cả mảng nếu tồn tại hoặc trả về false. Chúng ta có thể sử dụng hàm để đọc từng dòng ngữ cảnh của tệp với helo của hàm $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
1. Hàm $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
1 sẽ lặp qua toàn bộ nội dung và trích xuất từng dòng riêng lẻVí dụ: lưu trữ đường dẫn tệp trong một biến
";
$a++;
}
fclose[$txt_file];
?>
8. Viết một biến $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
4 và lưu trữ hàm file[$filename, $flag, $context]
2 trên đó với tham số là ";
$a++;
}
fclose[$txt_file];
?>
8. Tiếp theo, sử dụng hàm $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
1 để lặp qua nội dung của tệp. Sử dụng $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
4 làm trình vòng lặp và $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
9 làm giá trị. Bên trong thân vòng lặp, in các biến Line 0: Hi
Line 1: How are you
Line 2: Have a great day
0 và 1 Hi
2 How are you
3 Have a great day
7Mã ví dụ
$txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
đầu ra
Line 0: Hi
Line 1: How are you
Line 2: Have a great day
Sử dụng Hàm Line 0: Hi
Line 1: How are you
Line 2: Have a great day
2 và Line 0: Hi
Line 1: How are you
Line 2: Have a great day
3 để đọc tệp theo từng dòng trong PHP
Line 0: Hi
Line 1: How are you
Line 2: Have a great day
Line 0: Hi
Line 1: How are you
Line 2: Have a great day
Hàm
Line 0: Hi
Line 1: How are you
Line 2: Have a great day
2 đọc toàn bộ tệp thành một chuỗi. Nó trả về toàn bộ tệp dưới dạng một chuỗi nếu nội dung tồn tại hoặc nó trả về false. Chúng ta có thể chỉ định đường dẫn tệp làm tham số cho hàm. Hàm Line 0: Hi
Line 1: How are you
Line 2: Have a great day
3 tách một chuỗi thành một mảng bằng cách sử dụng dấu tách. Cú pháp của hàm Line 0: Hi
Line 1: How are you
Line 2: Have a great day
3 như sauexplode[separator, $string, $limit]
Tùy chọn
Line 0: Hi
Line 1: How are you
Line 2: Have a great day
7 được sử dụng để tách Line 0: Hi
Line 1: How are you
Line 2: Have a great day
8 với số lượng phần tử Line 0: Hi
Line 1: How are you
Line 2: Have a great day
9 trong khi trả về giá trị. Chúng ta có thể kết hợp các hàm Line 0: Hi
Line 1: How are you
Line 2: Have a great day
2, Line 0: Hi
Line 1: How are you
Line 2: Have a great day
3 và $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
1 để đọc từng dòng của tệp văn bản trong PHPVí dụ: tạo một biến
explode[separator, $string, $limit]
3 và viết hàm Line 0: Hi
Line 1: How are you
Line 2: Have a great day
2 trên đó với đường dẫn tệp trong tham số. Sử dụng hàm Line 0: Hi
Line 1: How are you
Line 2: Have a great day
3 với ký tự explode[separator, $string, $limit]
6 làm dấu phân cách và explode[separator, $string, $limit]
3 làm chuỗi. Gán chức năng cho một biến $txt_file = 'abc.txt';
$lines = file[$txt_file];
foreach [$lines as $num=>$line]
{
echo 'Line '.$num.': '.$line.'
';
}
4. Sử dụng vòng lặp _______53_______9 để lặp _______35_______4 thành _______13_______7. Sau đó, in 1 Hi
2 How are you
3 Have a great day
7 bên trong thân vòng lặpTrong ví dụ bên dưới, biến
explode[separator, $string, $limit]
3 trả về chuỗi. Chúng tôi chia nó thành một mảng với ký tự dòng mới explode[separator, $string, $limit]
6 và in từng dòng bằng vòng lặp