Mục lục:
Để mở một file ta dùng cú pháp sau: open($path, $option)
. Trong đó $path
là đường dẫn đến file cần mở, $option
là quyền cho phép thao tác trên file.
Ta có danh sách các quyền sau:
Mode | Diễn giải |
---|---|
r | Read only |
r+ | Read + Write |
w | Write only |
w+ | Write + Read. Nếu file này tồn tại thì nội dung cũ sẽ bị xóa đi và ghi lại nội dung mới, còn nếu file chưa tồn tại thì nó tạo file mới |
a | Mở dưới dạng append dữ liệu, chỉ có write và nếu file tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới |
a+ | Mở dưới dạng append dữ liệu, bao gồm write và read. Nếu file tồn tại nó sẽ ghi tiếp nội dung phía dưới, ngược lại nếu file không tồn tại nó tạo file mới |
b | Mở dưới dạng chế độ binary |
Ví dụ:
|
Có 3 cách đọc file thông thường trong PHP đó là đọc từng dòng, đọc từng ký tự và đọc hết file.
Ta dùng hàm fgetc($fp)
để đọc theo từng ký tự, dùng fgets($fp)
để đọc theo từng dòng. Đố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.
Để đọc hết tất cả file ta dùng hàm fread($fp, $size)
, trong đó $fp
là đối tượng lúc mở file còn $size
là kích cỡ của file cần đọc. Để lấy kích cỡ của file cần đọc ta dùng hàm filesize($path)
.
Ví dụ: Đọc file từng ký tự
|
Ví dụ: Đọc file từng dòng
|
Ví dụ: Đọc hết file
|
Để ghi nội dung vào file ta dùng hàm fwrite($fp, $content)
trong đó $fp
là đối tượng trả về lúc mở file, còn $content
là nội dung muốn ghi vào.
Việc ghi file phụ thuộc vào lúc bạn mở file như thế nào. Ví dụ lúc bạn mở file ghi đè thì lúc ghi file nó sẽ ghi đè, lúc bạn mở file ghi kiểu append thì lúc ghi file nó sẽ thêm xuống cuối file, nếu bạn mở file chỉ cho đọc thì bạn không thể ghi file được.
Ví dụ:
|
Việc mở file để sử dụng mà không đóng file rất nguy hiểm, vì thế sau khi sử dụng xong bạn nên đóng file để an toán hơn. Để đóng file ta dùng hàm fclose($fp) trong đó $fp là đối tượng trả về lúc bạn mở file.
Ví dụ:
|
Sau đây là một số hàm xử lý file khác.
Kiểm tra file có tồn tại không
Ta dùng hàm file_exists($path)
, trong đó $path
là đường dẫn đến file cần kiểm tra, ví dụ:
|
Kiểm tra file có được cấp quyền ghi không
a dùng hàm is_writable ($path)
trong đó $path
là đường dẫn đến file cần kiểm tra .
Ví dụ:
|
Lấy nội dung một file mà không cần dùng hàm fread
Ta dùng hàm file_get_contents($path)
để lấy nội dung của một file, trong đó $path
là đường dẫn đến file cần lấy. $path
có thể là đường link đến một trang web trên internet thì nó sẽ trả về nội dung html của trang web đó.
Ví dụ:
|
Ghi nội dung file mà không cần dùng hàm fwrite
Trước khi dùng hàm này bạn nên dùng hàm is_writable để kiểm tra file có được phép ghi không.
Ta dùng hàm file_put_contents($path, $noidung)
để ghi nội dung cho một file, trong đó $path
là đường dẫn đến file cần ghi, $noidung
là nội dung bạn muốn ghi vào file.
Ví dụ:
|
Đổi tên file
Để đổi tên file ta dùng hàm rename($oldname, $newname)
, trong đó $oldname
là đường dẫn đến file cần đổi tên, $newname
là đường dẫn mới có kèm tên file cần đổi . Nếu bạn chỉ muốn đổi tên thôi thì đường dẫn của cả 2 biến giống nhau, chỉ khác nhau ở cái tên file. Nếu tên file mới bị trùng thì file đó sẽ bị ghi đè.
Ví dụ:
|
Copy file
Để copy sang file mới ta dùng hàm copy($source, $dest)
, trong đó $source
là path file cần copy và $dest
là path file cần di chuyển tới. Nếu bạn muốn đổi luôn tên thì đường dẫn $dest
bạn khai báo một cái tên khác.
Ví dụ:
|
Xóa file
Ta dùng hàm unlink($path)
để xóa file, trong đó $path
là đường dẫn đến file cần xóa, ví dụ:
|
Kiểm tra một đường dẫn folder có tồn tại không
Ta dùng hàm is_dir($filename), trong đó $filename là đường dẫn đến folder cần kiểm tra.
Ví dụ:
|
Tạo một folder mới
Ta dùng hàm mkdir($path)
để tạo folder mới, trong đó $path
là đường dẫn đến folder cần tạo. Bạn lưu ý folder cuối cùng chính là tên folder bạn cần tạo và tất cả các folder trước nó bạn chắc chắn là phải có, nếu không sẽ bị lỗi.
Ví dụ:
|
Về bài trước... |
Bài tiếp theo... |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: