Hướng dẫn dùng write_file php trong PHP

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‘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.

<?php
$myfile = fopen("gochocit.txt", "w") or die("Unable to open file!");
$txt = "Hello all, welcome to gochocit.com!\n";
fwrite($myfile, $txt);
$txt = "Very happy to see you visit gochocit.com.\n";
fwrite($myfile, $txt);
$txt = "Hope it might be useful for you!\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

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()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

<?php
$file = 'gochocit.txt';
$data = "Hello all!";
file_put_contents($file, $data);
?>

Ví dụ nối dữ liệu vào file gochocit.txt

<?php
$file = 'gochocit.txt';
$data = "Hello all!";
file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
?>

Trong ví dụ trên, $flagFILE_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.

  • Các thao tác cơ bản trên cây nhị phân (Binary Tree)
  • Java collections framework: lớp Vector và lớp Stack
  • Ghi đè phương thức (method overriding) khi kế thừa trong Java
  • Chuỗi ký tự là gì? Cách khởi tạo và một số kỹ thuật lập trình trên chuỗi
  • Hàm is_object() trong PHP

Các hàm fwrite () và fputs () trong PHP được sử dụng để ghi dữ liệu vào file. Để ghi dữ liệu vào file, bạn cần sử dụng chế độ w, r +, w +, x, x +, c hoặc c +.

  • 1. PHP Viết file – fwrite()
  • 2. ghi đè file trong PHP
  • 3. Thêm dữ liệu vào file

1. PHP Viết file – fwrite()

Hàm fwrite () trong PHP được sử dụng để ghi nội dung của chuỗi vào file.

Cú pháp

int fwrite ( resource $handle , string $string [, int $length ] )  

Thí dụ

<?php  
$fp = fopen('data.txt', 'w');//opens file in write-only mode  
fwrite($fp, 'welcome ');  
fwrite($fp, 'to php file write');  
fclose($fp);  
  
echo "File written successfully";  
?>

Đầu ra: data.txt

welcome to php file write

2. ghi đè file trong PHP

Nếu bạn chạy lại đoạn code trên, nó sẽ xóa dữ liệu trước đó của file và ghi dữ liệu mới. Hãy xem đoạn code chỉ ghi dữ liệu mới vào file data.txt.

<?php  
$fp = fopen('data.txt', 'w');//opens file in write-only mode  
fwrite($fp, 'hello');  
fclose($fp);  
  
echo "File written successfully";  
?> 

Đầu ra: data.txt

hello

3. Thêm dữ liệu vào file

Nếu bạn sử dụng một chế độ, nó sẽ không xóa dữ liệu của file. Nó sẽ ghi dữ liệu vào cuối file. Truy cập trang tiếp theo để xem ví dụ về việc thêm dữ liệu vào file.

Xem chi tiết ở bài tiếp theo..

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Tài liệu từ cafedev:

  • Full series tự học PHP từ cơ bản tới nâng cao tại đây nha.
  • Ebook về PHP tại đây.
  • Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

  • Group Facebook
  • Fanpage
  • Youtube
  • Instagram
  • Twitter
  • Linkedin
  • Pinterest
  • Trang chủ

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!