Trong bài này, chúng ta sẽ tìm hiểu về cách create và write file trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
1. Tạo file với hàm fopen[] trong PHP
Hàm fopen[]
giúp mở một file và đưa file đó vào stream để chuẩn bị đọc/ghi dữ liệu. Cú pháp:
fopen[
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
]: resource|false
Với các $mode là ‘w’, ‘w+’, ‘a’, ‘a+’, ‘x’, ‘x+’ thì hàm fopen[]
giúp tạo một file mới khi file chưa tồn tại. Các bạn có thể tìm hiểu kỹ hơn cách sử dụng hàm fopen[]
tại
Mở file với hàm fopen[] trong PHP.
2. Ghi file với hàm fwrite[] trong PHP
Hàm fwrite[]
được sử dụng để ghi dữ liệu vào file khi đã mở file với hàm fopen[]
. Cú pháp:
fwrite[resource $stream, string $data, ?int $length = null]: int|false
Trong đó,
– $stream là stream đọc file được mở bởi hàm fopen[].
– $data là chuỗi [string] dữ liệu được ghi vào file.
– $length là số byte muốn ghi vào file.
Kết quả trả về của hàm fwrite[]
là số byte ghi được hoặc false nếu ghi file bị lỗi.
Khi mở file bằng hàm fopen[]
với chế độ “w” thì dữ liệu ghi vào file sẽ ghi đè [overwriting] lên dữ
liệu cũ nếu file đã tồn tại. Nếu sử dụng chế độ “a” thì dữ liệu ghi vào file sẽ được ghi nối tiếp vào file.
3. Tạo và ghi file với hàm file_put_contents[] trong PHP
Hàm file_put_contents[]
giúp ghi dữ liệu vào file. Nếu file không tồn tại thì file mới sẽ được tạo. Nếu file tồn tại thì dữ liệu trong file sẽ bị sẽ bị ghi đè. Nếu muốn ghi nối tiếp vào file thì sử dụng $flag = FILE_APPEND
.
Hàm
này có chức năng giống với việc gọi hàm fopen[]
, fwrite[]
và fclose[]
liên tiếp để ghi dữ liệu vào một file. Cú pháp:
file_put_contents[
string $filename,
mixed $data,
int $flags = 0,
?resource $context = null
]: int|false
Trong đó,
– $filename là đường dẫn của file cần ghi dữ liệu.
– $data là dữ liệu cần ghi vào file. $data có thể là string, array hoặc stream resource.
– $flag là các cờ thể hiện chế độ ghi dữ liệu của hàm file_put_contents[]. Có thể kết hợp các flag với nhau bằng toán tử OR [ | ].
Flag | Mô tả |
FILE_USE_INCLUDE_PATH | Có thể tìm file trong include_path. |
FILE_APPEND | Nếu file đã tồn tại, nối tiếp dữ liệu vào file thay vì phải ghi đè file. |
LOCK_EX | Khóa file nếu đang ghi dữ liệu. |
– $context là resource được tạo bởi hàm stream_context_create[].
Kết quả trả về của hàm file_put_contents[]
là số byte được ghi vào file hoặc false nếu ghi file bị lỗi.
Ví dụ ghi đè dữ liệu vào file gochocit.txt
Ví dụ nối dữ liệu vào file gochocit.txt
Trong ví dụ trên, $flag là FILE_APPEND | LOCK_EX
. $flag này có nghĩa là nối dữ liệu vào file gochocit.txt
và khóa file trong khi ghi dữ liệu.
- Hàm thuần ảo [pure virtual function] và lớp trừu tượng [abstract class] trong C++
- Java collections framework: lớp Vector và lớp Stack
- Tính đóng gói [encapsulation] và đa hình [polymorphism] trong Python
- Đọc [read] file JSON với Python
- Ngôn ngữ C++ là gì? Tìm hiểu ngôn ngữ lập trình C++