Asked Aug 7th, 9:05 AM 174 0 4
  • 174 0 4
+1

Đọc dòng cuối cùng của file txt trong laravel

Share
  • 174 0 4

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 ANSWERS


Answered Aug 7th, 9:33 AM
Accepted
0

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)

Share
Tran Anh @mediavn
Aug 7th, 9:48 AM

Mình sẽ tìm hiểu cách này của bạn, Thanks bạn'

0
| Reply
Share
Answered Aug 7th, 9:26 AM
+1
<?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.

Share
Tran Anh @mediavn
Aug 7th, 9:43 AM

cảm ơn bạn nhé,

0
| Reply
Share
Answered Aug 7th, 9:28 AM
+1
<?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);
Share
Aug 7th, 9:36 AM

master PHP đây rồi (capcuu)

0
| Reply
Share
Tran Anh @mediavn
Aug 7th, 9:47 AM

Cảm ơn bạn nhiều,

0
| Reply
Share
Answered Aug 7th, 9:31 AM
+1

Để 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]

Share
Tran Anh @mediavn
Aug 7th, 9:48 AM

Cảm ơn bạn nhiều,

+1
| Reply
Share