Đọc dòng cuối cùng của file txt trong laravel
Chào các bạn, Mình có một file 2019-07-26_insert_user_record_for_csv.txt có nội dung:
cập nhật:01 file、chèn: 02 file
cập nhật:03 file、chèn: 03 file
cập nhật:06 file、chèn: 05 file
cập nhật:11 file、chèn: 21 file
làm sao để đọc được dòng cuối cùng để hiển thị được số 11 và 21. Cảm ơn các bạn,
4 CÂU TRẢ LỜI
File nhỏ thì dùng mấy cách của các comment khác OK. Muốn chạy ngon trên file to thì dùng cái này: https://gist.github.com/lorenzos/1711e81a9162320fde20
Dùng fseek về cuối file để tìm kí tự break line và dò lên...
Lấy đc dòng cuối thì dùng regex hay gì tùy ý để bóc ra số 11, 21 kia ( '/(\d+) file.*?(\d+) file /'
=> lấy matched $1, $2)
Mình sẽ tìm hiểu cách này của bạn, Thanks bạn'
<?php
$file = file('2019-07-26_insert_user_record_for_csv.txt', FILE_IGNORE_NEW_LINES);
$data = end($file);
$listElements = explode(' ', $data);
// var_dump($listElements);
echo $listElements[2];
echo "\n";
echo $listElements[4];
bài cũng chỉ là 1 bài dạng cơ bản như sau: lấy nội dung file => nhét mảng mỗi dòng => lấy phần tử cuối => string convert sang mảng explode kí tự space. Lấy phần tử 2 và 4 là xong. Minh khuyên bạn học 1 số sách về cấu trúc dữ liệu và giải thuật và lập trình hướng cấu trúc, tự làm mấy bài toán sắp xếp, cắt chuỗi, danh sách liên kết đôi, đơn, cây dữ liệu,..... thì sau này mấy câu hỏi dạng này cũng muỗi và easy thôi.
cảm ơn bạn nhé,
<?php
$file = "2019-07-26_insert_user_record_for_csv.txt";
$data = file($file);
$line = $data[count($data)-1];
preg_match_all("/\d+/",$line, $matches);
print_r($matches);
Để lấy dòng cuối cùng bạn đọc file đó như sau:
$contents= File::get(storage_path('test.txt'));
$lines = explode("\n", $contents);
Dòng cuối cùng của file sẽ là: $lines[count($lines) - 1]
Cảm ơn bạn nhiều,