Phần này hướng dẫn bạn xử lý file trong PHP, PHP cho phép chúng ta tạo file, đọc từng dòng của file, đọc file theo ký tự, ghi file, nối thêm nội dung vào file, xóa file và đóng file. Show
Nội dung chính
Mở file - hàm PHP fopen()Hàm PHP fopen() được sử dụng để mở một file. Cú pháp: fopen (string $filename , string $mode [, bool $use_include_path = false [, resource $context ]]) Ví dụ: <?php $handle = fopen("D:\\folder\\file.txt", "r"); ?> Đóng file - hàm PHP fclose()Hàm PHP fclose() được sử dụng để đóng một file. Cú pháp: Ví dụ: <?php fclose($handle); ?> Đọc file - hàm PHP fcfreadlose()Hàm PHP fread() được sử dụng để đọc nội dung của một file. Nó chấp nhận 2 tham số: resource và kích thước file Cú pháp: string fread(resource $handle, int $length ) Ví dụ: <?php $filename = "D:\\myfile.txt"; $handle = fopen($filename, "r");//mở file ở chế độ đọc $contents = fread($handle, filesize($filename));//đọc file echo $contents;//in nội dung file ra màn hình fclose($handle);//đóng file ?> Kết quả: Ghi file - hàm PHP fwrite()Hàm PHP fwrite() được sử dụng để ghi nội dung vào file. Cú pháp: int fwrite(resource $handle , string $string [, int $length ]) Ví dụ: <?php $fp = fopen('data.txt', 'w');//mở file ở chế độ ghi fwrite($fp, 'hello '); fwrite($fp, 'php file'); fclose($fp); echo "File được ghi thành công."; ?> Kết quả: File được ghi thành công. Xóa file - hàm PHP unlink()Hàm PHP unlink() được sử dụng để xóa một file. Cú pháp: bool unlink ( string $filename [, resource $context ]) Ví dụ: <?php unlink('data.txt'); echo "File được xóa thành công."; ?> Kết quả: File được xóa thành công. Xử lý file(tập tin) là một phần rất quan trọng của bất kỳ ứng dụng web nào. Bạn thường cần mở và xử lý một file cho những công việc khác nhau. Và PHP cung cấp cho ta một số hàm để tạo, đọc, tải và chỉnh sửa file. Tuy nhiên hãy cẩn thận khi thao tác với các tập tin! Vì bạn không thể biết rằng mình có thể làm sai điều gì đó dẫn đến thiệt hại cho file. Các lỗi thường gặp như chỉnh sai tệp, làm đầy ổ cứng bằng tệp rác và nặng hơn là vô tình xóa mất nội dung trong file. Vì vậy mà hãy cẩn thận khi thao tác với file! Nội Dung
1. Hàm readfile () trong PHPHàm readfile() có tác dụng mở một file và đọc nội dung của file đó. Một hàm tương tự khác cũng có tác dụng đọc nội dung file là file_get_contents(). Hàm readfile() sẽ đọc kết file được truyền vào và in kết quả đọc được ra màn hình. Cú pháp:
Trong đó:
Giá trị trả về là số byte được đọc từ tệp khi thành công hoặc không thành công là False. Ví dụ: ta có một file read.txt có dạng như sau: AJAX = JavaScript và XML không đồng bộ CSS = Trang tính kiểu xếp tầng HTML = Ngôn ngữ đánh dấu siêu văn bản PHP = Bộ tiền xử lý siêu văn bản PHP SQL = Ngôn ngữ truy vấn có cấu trúc SVG = Đồ họa Vectơ có thể mở rộng XML = Ngôn ngữ đánh dấu có thể mở rộng Và ta có: <?php echo readfile("read.txt"); ?> Lưu ý
2. Mở file với PHPĐể mở một file ta dùng hàm fopen($path, $mode). Trong đó:
Ví dụ: <?php $handle = fopen("D:\\folder\\file.txt", "r"); ?> Thuộc tính bao gồm các quyền hạn cho phép thao tác trên file:
Ví dụ: // Sử dụng dấu @ đằng trước hàm fopen để chặn // thông báo lỗi khi sai đường dẫn // Đường dẫn $path có thể là đường dẫn tương đối // hoặc tuyệt đối đều được $path = 'example.txt'; $fp = @fopen($path, "r"); // Kiểm tra file mở thành công không if (!$fp) { echo 'Mở file không thành công'; } else{ echo 'Mở file thành công'; } 3. Đọc file với PHPTrong PHP có 3 cách đọc file thông dụng đó là đọc từng dòng, đọc từng ký tự và đọc hết file. 3.1. Đọc file từng ký tựTrong PHP chúng ta sử dụng hàm feof() để kiểm tra xem đã ở vị trí cuối cùng của file chưa và hàm fgec() để đọc từng ký tự của file. Ví dụ: $fp = @fopen('read.txt', "r"); // Kiểm tra file mở thành công không if (!$fp) { echo 'Mở file không thành công'; } else { // Lặp qua từng ký tự để đọc while(!feof($fp)) { echo fgetc($fp); } } 3.2. Đọc file từng dòngTa sẽ dùng fgets($fp) để đọc theo từng dòng. Ví dụ: $fp = @fopen('read.txt', "r"); // Kiểm tra file mở thành công không if (!$fp) { echo 'Mở file không thành công'; } else { // Lặp qua từng dòng để đọc while(!feof($fp)) { echo fgets($fp); } } Đối với đọc từng dòng và đọc từng ký tự ta phải dùng hàm feof($fp) đặt trong vòng lặp while để sau khi đọc xong nó sẽ chuyển sang dòng mới hoặc ký tự mới. 3.3. Đọc hết fileĐể đọc hết tất cả file ta dùng hàm fread($fp, $size). Trong đó:
Hàm PHP fread() được sử dụng để đọc nội dung của một file. Nó chấp nhận 2 tham số: resource và kích thước file. Fread( $filename, $filesize); Trong đó: • file – file cần đọc. • filesize – Số byte tối đa cần đọc. Ví dụ: Đoạn code sau cho đọc file read.txt đến cuối:
4. Đóng file với PHPHàm PHP fclose($file); được sử dụng để đóng một file. Ví dụ: $file = @fopen('read.txt', 'w'); if (!$file) { echo "Mở file không thành công"; } else { $data = 'Đây là dữ liệu được ghi vào file.'; fwrite($file, $data); fclose($file); } 5. Ghi file với PHPĐể ghi dữ liệu vào file, chúng ta sẽ dùng hàm fwrite( $file, $content ). Trong đó:
Việc ghi file phụ thuộc vào lúc mở file như thế nào. Ví dụ lúc mở file ghi đè thì lúc ghi file nó sẽ ghi đè, lúc mở file ghi kiểu append thì lúc ghi file nó sẽ thêm xuống cuối file, nếu mở file chỉ cho đọc thì bạn không thể ghi file được. Ví dụ: <?php $fp = fopen('PHP.txt', "w"); if (!$fp) { echo "Can't open file"; } else { $data = 'Hello STDIO!'; fwrite($fp, $data); } ?> |