Định Nghĩa.
Hàm file()
sẽ đọc nội dung của file truyền vào thành một mảng, mỗi dòng của file sẽ là một phần tử của mảng.
Cú pháp.
Cú pháp:
file ( string$filename
[, int$flags
= 0 [, resource$context
]] ) : array
Trong đó.
$filename
là đường dẫn đến file cần đọc nội dung.$flag
là tham số không bắt buộc, mang một trong các giá trị sau:- FILE_USE_INCLUDE_PATH : tìm kiếm file trong include_path.
- FILE_IGNORE_NEW_LINES : không thêm dòng mới vào cuối mỗi phần tử của mảng.
- FILE_SKIP_EMPTY_LINES : bỏ qua những dòngtrống.
- $context Một context resource hợp lệ được tạo bởi stream_context_create().
Giá trị trả về.
- Hàm sẽ trả về mảng liên tục với mỗi phần tử là 1 dòng trong nội dung file truyền vào.
Lưu ý: - Mỗi dòng trong mảng kết quả sẽ bao gồm dòng kết thúc, trừ khi FILE_IGNORE_NEW_LINES được sử dụng. - Nếu PHP không nhận dạng chính xác các kết thúc dòng khi đọc tệp trên hoặc được tạo bởi máy tính Macintosh, thì bật tùy chọn cấu hình thời gian chạy auto_detect_line_endings có thể giúp giải quyết vấn đề.
Errors/Exceptions.
- Se cảnh báo nếu file không tồn tại.
Ví dụ.
ví dụ 1 sử dụng đơn giản
code:
<?php //Nhận một tập tin vào một mảng. Trong ví dụ này, chúng tôi sẽ thông qua HTTP để có được // nguồn HTML của một URL. $lines = file('http://www.example.com/'); // Lặp lại qua mảng của chúng tôi, hiển thị nguồn HTML dưới dạng nguồn HTML; và số dòng quá. foreach ($lines as $line_num => $line) { echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } // Một ví dụ khác, hãy lấy một trang web thành một chuỗi. Xem thêm file_get_contents (). $html = implode('', file('http://www.example.com/')); // Sử dụng tham số cờ tùy chọn kể từ PHP 5 $trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); ?>
Ghi chú.
- Cảnh báo Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo close_notify. PHP sẽ báo cáo đây là “SSL: Lỗi giao thức nghiêm trọng” khi bạn đến cuối dữ liệu. Để giải quyết vấn đề này, giá trị của error_Vporting nên được hạ xuống mức không bao gồm các cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS bị lỗi khi bạn mở luồng bằng cách sử dụng trình bao bọc https: // và sẽ chặn cảnh báo. Khi sử dụng fsockopen () để tạo ổ cắm ssl: //, nhà phát triển có trách nhiệm phát hiện và triệt tiêu cảnh báo này.
Hàm liên quan.
- readfile() – Đọc một file
- fopen() – Mở một file hoặc một URL
- fsockopen() – Mở kết nối ổ cắm Internet hoặc Unix
- popen() – Mở con trỏ tệp quá trình
- file_get_contents() – Đọc nội dung file ở dạng chuỗi.
- include – Nhúng file
- stream_context_create() – Tạo một stream context
Thông tin thêm.
- Để viết tất cả các dòng của tệp bằng các từ khác để đọc từng dòng tệp, bạn có thể viết mã như thế này:
<?php $names=file('name.txt'); // Check số dòng của file. echo count($names).'<br>'; foreach($names as $name) { echo $name.'<br>'; } ?>
- điều này có thể rõ ràng, nhưng tôi phải mất một thời gian để tìm ra những gì tôi đã làm sai. Vì vậy, tôi muốn chia sẻ. Tôi có một tệp trên ổ đĩa “c: \” của mình. Làm thế nào để tôi nộp () nó? Đừng quên dấu gạch chéo ngược là đặc biệt và bạn phải “thoát” dấu gạch chéo ngược, tức là “\\”:
<?php $lines = file("C:\\Documents and Settings\\myfile.txt"); foreach($lines as $line) { echo($line); }
- Nếu tệp bạn đang đọc ở định dạng CSV, không sử dụng tệp (), hãy sử dụng fgetcsv (). tệp () sẽ phân chia tệp theo từng dòng mới mà nó tìm thấy, thậm chí các dòng mới xuất hiện trong một trường (nghĩa là trong phần trích dẫn)
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm file() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com