PHP ghi mảng vào tệp theo từng dòng
Bạn có thể đã nghe nói về
0 và 1 kể từ ngày đầu tiên học PHP – Đúng vậy, chúng thực sự có thể được sử dụng cho bất kỳ loại tệp nào Bạn có thể sử dụng hàm
38 trong PHP để đọc toàn bộ tệp cùng lúc vào một mảng. Các phần tử mảng là các dòng riêng lẻ của tệp. Vì vậy, bạn sẽ có thể lặp qua các dòng trong tệp bằng cách lặp qua mảng. Hàm chấp nhận ba tham số Show
Chúng tôi sẽ sử dụng cờ
42 để bỏ qua tất cả các dòng trống trong một tệp. Bạn cũng có thể muốn sử dụng
41 để xóa phần cuối dòng khỏi các dòng riêng lẻHàm này trả về một mảng có nội dung tệp khi thành công và
45 khi thất bại. Bạn cũng sẽ gặp lỗi cấp độ
46 nếu tệp không tồn tại. Dưới đây là một ví dụ về việc sử dụng chức năng này 0_______2 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8Đầu ra của đoạn mã trên trông như thế này _______10_______120 2 22 3 24 5 26 7 28 8 30
0 32
2 34
4 36
6 38
7 40 41 42 43 44 45_______145_____145_____145_____145Bạn có thể thấy rằng có một số dòng trống trong đầu ra; . Ngoài ra, nó có thể không rõ ràng, nhưng các dòng trên bao gồm ký tự xuống dòng. Đó là lý do tại sao chúng ta không phải thêm một ký tự dòng mới của riêng mình khi lặp lại các dòng. Bạn có thể loại bỏ các dòng trống bằng cách sử dụng cờ
41 0__
2 3 55 5 6 7 8 9
0
1
2
3
4
5
6
7
8Đầu ra với những lá cờ đó sẽ trông như thế này 0____171Sử dụng hàm
38 là một cách dễ dàng để đọc từng dòng tệp trong PHP nếu bạn không lo lắng về việc sử dụng bộ nhớ. Tuy nhiên, bạn sẽ phải sáng tạo hơn nếu việc sử dụng bộ nhớ là một vấn đề vì
38 đọc toàn bộ tệp vào một mảng cùng một lúcSử dụngMột cách khác để đọc từng dòng tệp bằng PHP là sử dụng hàm
51. Nó có một tham số bắt buộc, đó là một tệp xử lý hợp lệ. Chúng tôi sẽ sử dụng chức năng
53 để có quyền truy cập vào phần xử lý tệp. Đây là mã mà chúng ta sẽ chạy 0
2 3 76 5 7 79 8__Ở dòng đầu tiên, chúng tôi mở tệp của mình ở chế độ chỉ đọc. Sau đó, chúng ta định nghĩa một hàm chấp nhận một tham số là
54 và trả về một dòng duy nhất. Xin lưu ý rằng chúng tôi đang sử dụng câu lệnh
55 và hàm
56 của chúng tôi là hàm tạo. Bạn có thể muốn đọc về các hàm tạo trong PHP nếu bạn chưa từng sử dụng chúng trước đây
Chúng tôi đang sử dụng hàm
57 bên trong
56 để kiểm tra xem con trỏ tệp của chúng tôi đã đến cuối tệp chưa. Chúng tôi chỉ mang lại miễn là chúng tôi không ở cuối tệp. Bạn sẽ nhận được đầu ra sau bằng cách chạy đoạn mã trên 0__
07 2
09 3
11 5
13 7
15 8
17
0
19
2
21
4
23
6 38
7 40 41 42 43 44 45_____145145_____145_____145_____145Đầu ra trông giống như trong phần trước của chúng tôi. Sự khác biệt duy nhất lần này là bạn không còn nguy cơ hết bộ nhớ nữa Tôi đã đề cập trước đó rằng
51 sẽ cho phép bạn đọc từng dòng của tệp và nó chỉ yêu cầu một tham số duy nhất trỏ tới con trỏ tệp cho tệp mà bạn muốn đọc. Mức tiêu thụ bộ nhớ trong trường hợp này sẽ phụ thuộc vào độ dài của dòng và có rất ít khả năng bạn hết bộ nhớTuy nhiên, giả sử bạn đang đọc một tệp văn bản chứa các dòng dài bất thường. Sau đó, bạn có thể chuyển tham số thứ hai tùy chọn cho hàm
51 chỉ định số lượng ký tự mà bạn muốn đọc. Sau đó, nó sẽ đọc
61 byte từ tệp trước khi dừng. Nó sẽ dừng sớm hơn nếu nó đến một dòng mới hoặc cuối tệp. Điều này cho phép bạn kiểm soát nhiều hơn đối với mức tiêu thụ bộ nhớ của mã của bạnSuy nghĩ cuối cùngTôi đã thảo luận về hai phương pháp đọc từng dòng tệp bằng PHP trong hướng dẫn này. Có một vài cách khác để làm điều này, nhưng hai cách này sẽ đáp ứng hầu hết mọi nhu cầu của bạn. Sử dụng hàm
38 khi mức tiêu thụ bộ nhớ không phải là vấn đề và sử dụng
51 với hàm tạo nếu bạn muốn tiết kiệm bộ nhớ
Làm cách nào để viết một mảng vào một tệp PHP?Để chuyển đổi một mảng thành tệp CSV, chúng ta có thể sử dụng hàm fputcsv() . Hàm fputcsv() được sử dụng để định dạng một dòng dưới dạng tệp CSV (các giá trị được phân tách bằng dấu phẩy) và ghi nó vào một tệp đang mở.
Làm cách nào để đọc một tệp thành một mảng có tệp trong PHP?Tệp() đọc một tệp thành một mảng. Mỗi phần tử mảng chứa một dòng từ tệp, với ký tự xuống dòng vẫn được đính kèm.
Làm cách nào để chuyển đổi một mảng thành một chuỗi trong PHP?Trong PHP, hàm implode() là một hàm tích hợp, nhận một mảng và chuyển đổi nó thành một chuỗi. implode() không sửa đổi mảng ban đầu. Không quan trọng mảng là mảng được lập chỉ mục hay mảng kết hợp. Khi bạn chuyển mảng sang implode() , nó sẽ nối tất cả các giá trị thành một chuỗi.
Mã nào đọc toàn bộ nội dung của một tệp theo từng dòng vào một mảng?Liên kết trực tiếp tới câu trả lời này
. \ r. \n', 'tách');lines = regexp(str, '\r\n|\r|\n', 'split'); |