Cách kiểm tra số dòng trong tệp php?

php đếm số dòng trong tệp – Đếm hiệu quả số dòng của tệp văn bản. Đây là một hàm PHP sẽ trả về các dòng số trong một tệp văn bản. Sử dụng nó để đếm các dòng trong một tệp dữ liệu

php đếm số dòng trong tệp

nội dung

  • php đếm số dòng trong tệp
    • PHP – Cách tính số dòng trong tệp?
    • Hàm PHP đếm số dòng trong tệp văn bản dữ liệu
    • Bài viết liên quan

PHP – Cách tính số dòng trong tệp?

mục lục. php

Chương trình PHP để đếm số dòng trong một tệp văn bản

Hàm PHP đếm số dòng trong tệp văn bản dữ liệu

Đếm số dòng một tệp văn bản dữ liệu

function isa_count_datafile_lines[$file] {
    set_time_limit[300];
    ini_set['memory_limit', '-1'];
    $arr = file[$file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES];
    $c = [ false === $arr] ? 0 : count[$arr];
    set_time_limit[30];// restore to default
    ini_set['memory_limit','128M'];// restore to default
    return $c;
}

php đếm tập tin trong thư mục

Cũng nên đọc phần này 👉   Laravel return json xem ví dụ về yêu cầu ajax

Thí dụ

$file = '/tmp/product_details.txt';
$count = isa_count_datafile_lines[$file];
echo 'There are ' . number_format[$count] . ' lines in ' . $file;

Tôi hy vọng bạn có ý tưởng về số dòng php trong tệp.
Tôi muốn có phản hồi về infinityknow của mình. blog com.
Phản hồi, câu hỏi hoặc nhận xét có giá trị của bạn về bài viết này luôn được hoan nghênh.
Nếu bạn thích và thích bài đăng này, đừng quên chia sẻ.

pakainfo

Tôi là Jaydeep Gondaliya , kỹ sư phần mềm, người sáng lập và người điều hành Pakainfo. Tôi là nhà phát triển toàn diện, doanh nhân và chủ sở hữu của Pakainfo. com. Tôi sống ở Ấn Độ và tôi thích viết các hướng dẫn và mẹo có thể giúp ích cho các nghệ nhân khác, một Blogger đam mê, những người thích chia sẻ nội dung thông tin về PHP, JavaScript, jQuery, Laravel, CodeIgniter, VueJS, AngularJS và Bootstrap ngay từ giai đoạn đầu

Khi phân tích cú pháp các tệp văn bản lớn, đặc biệt là tệp CSV, các nhà phát triển web thường cần biết trước số lượng dòng có trong tệp. Việc biết số lượng dòng CSV rất hữu ích vì một số lý do, chẳng hạn như hiển thị đồng hồ đo tiến trình trong khi phân tích cú pháp tệp lớn hoặc ước tính thời gian quá trình phân tích cú pháp có thể mất bao lâu. Có hai cách để làm điều này khi sử dụng PHP để phát triển web. Thật không may, cả hai đều yêu cầu sử dụng nhiều bộ nhớ hơn mức cần thiết — chỉ để đếm số dòng. Tin tốt là số dòng có thể được tính toán rất nhanh bằng cách sử dụng hàm exec[] của PHP và một số tiện ích Linux đơn giản. Nhưng trước tiên, chúng ta hãy xem các phương thức PHP…

Phương pháp số 1. Phân tích cú pháp toàn bộ tệp CSV cùng một lúc bằng PHP

Phương thức đầu tiên này sử dụng hàm file[] để đọc nội dung của tệp thành một mảng, từ đó phương thức count[] có thể được sử dụng để lấy số lượng dòng.
______4
Đọc toàn bộ tệp vào bộ nhớ chỉ để đếm số dòng? . ini] để dừng tập lệnh. Tuy nhiên, hầu hết mọi diễn đàn đều đề xuất giải pháp này khi mọi người hỏi cách tính số dòng trong tệp CSV. Đôi khi, mã đơn giản không đơn giản như vậy.

Phương pháp #2. Phân tích từng dòng tệp CSV bằng PHP

Có một phương pháp khác để tính số dòng cần ít bộ nhớ hơn. Sử dụng các hàm hệ thống tệp của PHP — fopen[], fgets[] và fclose[] để lặp qua tệp, mỗi lần đọc một dòng vào bộ nhớ và tăng số lượng dòng khi chúng tôi làm như vậy.
______5
Mặc dù phương pháp này chắc chắn nhanh hơn phương pháp trước, nhưng nó vẫn yêu cầu đọc toàn bộ dòng vào bộ nhớ chỉ để đếm. Đối với các tệp CSV có số lượng cột nhỏ, điều này không thành vấn đề. Việc phân tích cú pháp các tệp lớn hơn với số lượng cột lớn hơn sẽ kết thúc bằng việc sử dụng bộ nhớ không nhất thiết phải sử dụng và sẽ mất thời gian xử lý khi làm như vậy.

Phương pháp #3. Sử dụng các tiện ích Linux để tính số dòng

Có lẽ một trong những hàm mạnh nhất và nguy hiểm nhất có sẵn trong PHP là hàm exec[]. Chức năng này cho phép chúng tôi thả xuống môi trường Linux chạy bên dưới PHP và đưa ra các chỉ thị dòng lệnh. Sử dụng hàm exec[] cho phép chúng ta truy cập vào tiện ích wc linux để in số lượng dòng mới, từ và byte trong tệp

Khi chạy trên dòng lệnh, kết quả sẽ như thế này.
______6

Để chạy cái này trong PHP và phân tích cú pháp đầu ra, chúng ta sẽ làm điều này.
______7

Chỉ có một vấn đề với cách tiếp cận này. Các tệp CSV được tạo bởi các chương trình bảng tính và hệ điều hành khác nhau sử dụng các ký tự khác nhau để biểu thị một dòng mới. Trong khi Linux sử dụng ký tự xuống dòng, được biểu thị là '\n' hoặc thập phân 12 [LF], thì Windows sử dụng các cặp xuống dòng xuống dòng, được biểu thị là '\r\n' hoặc thập phân 15,12 [CR+LF]. Để làm phức tạp thêm vấn đề, Mac OS, cho đến phiên bản 9, đã sử dụng các ký tự xuống dòng, được biểu thị dưới dạng '\r' hoặc số thập phân 15 [CR]. Tiện ích wc gặp khó khăn khi đếm số dòng trong tệp CSV được tạo bằng các phiên bản Mac OS cũ hơn và có thể cả các hệ điều hành và phần mềm khác sử dụng ký tự xuống dòng [CR] duy nhất để biểu thị từng dòng mới

Để khắc phục điều này, chúng tôi sử dụng wc kết hợp với perl.
______8

Bằng cách chạy tệp thông qua perl trên dòng lệnh, chúng tôi có thể thay thế các biến thể của ký tự dòng mới mà chúng tôi có thể gặp phải. Cần lưu ý ở đây rằng việc sử dụng tiện ích tr linux thường được đề xuất sẽ không hoạt động vì nó chỉ có thể thay thế một ký tự và chúng ta cần thay thế một bộ hai ký tự

Để sao chép điều này trong PHP, chúng tôi sẽ làm.
______9

Giờ đây, chúng tôi đã có một phương pháp nhanh chóng và hiệu quả để truy cập PHP và chuyển sang Hệ điều hành Linux để thực hiện một số công việc nặng nhọc cho chúng tôi. Nó có ý nghĩa. Nếu có một công cụ tốt hơn cho công việc, hãy sử dụng công cụ đó, đặc biệt nếu công cụ đó được mặc định cho môi trường gốc mà chúng ta quen làm việc trong đó. May mắn thay cho các nhà phát triển web chúng tôi, PHP và Linux đi cùng nhau như Ponch và Jon, làm cho những thách thức phát triển như thế này trở nên hiệu quả và thú vị

Cập nhật. Tôi đã quên đề cập trong bài viết rằng khi đối mặt với thách thức phát triển web này, chúng tôi đã sử dụng phương pháp số 2 trong ứng dụng dựa trên web của mình, Intervals. Chúng tôi đã có thể làm điều đó mà không cần quá nhiều hiệu suất. Tuy nhiên, nếu hiệu suất trở thành một vấn đề, tôi sẽ không ngần ngại triển khai phương pháp số 3

Chủ Đề