Yêu cầu Aug 7th, 2019 9:05 a.m. 448 0 4
  • 448 0 4
+1

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

Chia sẻ
  • 448 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 CÂU TRẢ LỜI


Đã trả lời Aug 7th, 2019 9:33 a.m.
Đã được chấp nhận
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)

Chia sẻ
Avatar Tran Anh @mediavn
Aug 7th, 2019 9:48 a.m.

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

Đã trả lời Aug 7th, 2019 9:26 a.m.
+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.

Chia sẻ
Avatar Tran Anh @mediavn
Aug 7th, 2019 9:43 a.m.

cảm ơn bạn nhé,

Đã trả lời Aug 7th, 2019 9:28 a.m.
+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);
Chia sẻ
Avatar WheeBoo @quanghung97
Aug 7th, 2019 9:36 a.m.

master PHP đây rồi (capcuu)

Avatar Tran Anh @mediavn
Aug 7th, 2019 9:47 a.m.

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

Đã trả lời Aug 7th, 2019 9:31 a.m.
+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]

Chia sẻ
Avatar Tran Anh @mediavn
Aug 7th, 2019 9:48 a.m.

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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí