Hướng dẫn dùng inc.file trong PHP

  • Trang chủ
  • Hướng dẫn học
  • Học PHP
  • PHP include và require

Nội dung chính

  • Định nghĩa và cách dùng include và require
  • PHP include và require với path
  • Các hàm tạo, đọc, ghi file
  • Hàm fopen và fclose trong PHP
  • Ghi dữ liệu vào file với hàm fwrite / fputs trong PHP
  • Ví dụ, ghi thêm nội dung vào file
  • Đọc nội dung file, hàm fread trong PHP
  • Đọc một chuỗi trong file với hàm fgets trong PHP
  • Đọc toàn bộ nội dung file trong PHP
  • Đọc toàn bộ nội dung file với hàm file_get_contents trong PHP
  • Hàm file_put_contents trong PHP

Định nghĩa và cách dùng include và require

  • include hoặc require tiện lợi cho việc sử dụng những phần dùng chung, ví dụ header, footer, sidebar hoặc một function dùng chung nào đó.
  • Đối với những phần dùng chung này, ta tách riêng ra 1 file PHP, sau đó sử dụng include hoặc require để kết nối.
  • Điều này tiện lợi cho việc chỉnh sửa, thay vì chỉnh nhiều trang, giờ thì ta chỉ việc chỉnh file PHP đã tách riêng là được.
  • Sự khác biệt giữa includerequire:

    • include: code bên dưới include sẽ tiếp tục thực thi, cho dù file được include có tồn tại hay không.
    • require: code bên dưới require sẽ không được thực thi, nếu file được require không tồn tại.

include

  • Được dùng để chèn một file PHP vào một file PHP khác.

Cấu trúc

Ví dụ:

Content

Ta thấy nội dung 2 file header.phpfooter.php đã được thêm vào.

Download file ví dụ

include với file không tồn tại

  // Giả sử file header.php không có
Content

Warning: include[header.php]: failed to open stream: No such file or directory in C:\xampp\htdocs\example\index.php on line 1

Warning: include[]: Failed opening 'header.php' for inclusion [include_path='.;C:\xampp\php\PEAR'] in C:\xampp\htdocs\example\index.php on line 1

Content

Ta thấy trình duyệt gửi cảnh báo, tuy nhiên những PHP vẫn thực thi những đoạn code bên dưới.

require

  • Được dùng để chèn một file PHP vào một file PHP khác, file được chèn bắt buộc phải tồn tại, nếu không sẽ không thực thi những đoạn code tiếp theo.
  • Thường được dùng để chèn nội dung kết nối database, function login, payment, ...
  • Cách sử dụng tương tự như include.

Cấu trúc

Ví dụ:

Content

Nội dung 2 file header.phpfooter.php đã được thêm vào.

Download file ví dụ

require với file không tồn tại

  // Giả sử file header.php không có
Content

Warning: require[header.php]: failed to open stream: No such file or directory in C:\xampp\htdocs\example\index.php on line 1

Fatal error: require[]: Failed opening required 'header.php' [include_path='.;C:\xampp\php\PEAR'] in C:\xampp\htdocs\example\index.php on line 1

Ta thấy trình duyệt gửi cảnh báo, và những đoạn code bên dưới đã không được thực thi.

PHP include và require với path

Lưu ý: nếu chưa được cấu hình đường dẫn tương đối [relative path] thì dễ xảy ra lỗi khi dùng
/đường_dẫn_file/tên_file [trong trường hợp phân cấp thư mục], khắc phục tình trạng này có 2 cách:

Sử dụng đường dẫn tuyệt đối

Sử dụng cách này cần kích hoạt allow_url_fopenallow_url_include sang On trong php.ini

Content

Download file ví dụ

Sử dụng DOCUMENT_ROOT

Content

Download file ví dụ

  • Các hàm tạo file, mở - đọc - ghi - đóng file
  • Hàm fopen và fclose - mở và đóng file
  • Hàm fwrite / fputs - ghi nội dung vào file
  • Ví dụ - ghi thêm nội dung vào file
  • Hàm fread, đọc nội dung file
  • Hàm fgets đọc một chuỗi
  • Đọc toàn bộ file, mảng chuỗi
  • Hàm file_get_contents
  • Hàm file_put_contents
  • Một số hàm về file

Các hàm tạo, đọc, ghi file

Phần này trình bày thao tác với file cơ bản với các tác vụ như mở file, đọc nội dung của file trong PHP với các hàm như: fopen[] fwrite[] fclose[] file[] file_get_contents[] file_put_contents[]. Bước đầu tập trung chủ yếu làm việc với chuỗi, còn kỹ thuật làm việc với dữ liệu nhị phân [các mảng byte] sẽ ở nội dung khác.

PHP đưa ra một số hàm với mục đích để làm việc với file như tạo file, đọc file, upload, biên tập ...

Hàm fopen và fclose trong PHP

fopen[] là hàm mở file để chuẩn bị đọc, ghi thông tin, cú pháp như sau:

$file = fopen[$filename, $mode];

$filename tên file với đường dẫn đầy đủ. Hoặc là URL của file cần mở. $mode chế độ mở file với một số giá trị như sau [chú ý khi mở file, tùy mode mà con trỏ xác định vị trí đang làm việc có thể ở đầu hoặc cuối file, các mode ở dưới thì aa+ con trỏ ở cuối - nối thêm vào file, còn các mode khác con trỏ ở đầu.]:

  • "r" - Mở file chỉ để đọc
  • "r+" - Mở file dể đọc và ghi
  • "w" - Mở file chỉ để ghi, khi mở nội dung trong file bị xóa sạch hoặc nếu file đó không tồn tại thì sẽ cố gắng tạo ra file mới.
  • "w+" - Mở file có thể đọc / ghi, khi mở nội dung trong file bị xóa sạch hoặc nếu file đó không tồn tại thì sẽ cố gắng tạo ra file mới.
  • "a" - Mở file chỉ để ghi, bắt đầu ghi ở vị trí cuối file, có tạo file mới nếu không tồn tại.
  • "a+" - Mở file để đọc/ghi.
  • "x" - Tạo file mới để ghi. Trả về false và phát sinh lỗi nếu file đã có
  • "x+" - Tạo file mới đọc/ghi. Trả về false và phát sinh lỗi nếu file đã có.
  • "c" - Mở file chỉ ghi hoặc tạo mới nếu không tồn tại.
  • "c+" - Mở file đọc/ghi hoặc tạo mới nếu không tồn tại.

Nếu mở file thành công nó trả về tài nguyên gắn với stream của file, từ tài nguyên này dùng các hàm khác nhau để đọc, ghi, di chuyển con trỏ.

Hàm feof[$file] là hàm cho biết vị trí đang ở cuối file hay không, trả về true là ở cuối file.

Sau khi thực hiện các tác vụ trên tài nguyên file đang mở thì phải đóng lại để giải phóng tài nguyên bằng cách gọi hàm fclose

Ví dụ sau tạo ra file file.txt, file tạo ra ở cùng với thư mục chứa code PHP, kết quả trả về là tài nguyên lưu vào $myfile.

$myfile = fopen["file.txt", "w"];

    ...

// đóng file
fclose[$myfile];
Hàmchức năng
fopen[$filename, $mode] Mở file, tạo file mới
fclose[$stream] Đóng file đang mở
feof[$stream] Trả về true nếu con trỏ ở cuối file

Ghi dữ liệu vào file với hàm fwrite / fputs trong PHP

Sau khi file đã được mở thì bạn có thể ghi dữ liệu [Binary-safe, chuỗi] cần thiết vào file, để làm điều đó dùng hàm fwrite[] cũng chính là hàm fputs

fwrite[$myfile, $txt];

//$myfile: là file đã được mở để ghi
//$text: là chuỗi cần ghi vào file.

Ví dụ sau ghi lại tên hai người vào file names.txt

Chú ý trước khi gọi hàm fwrite[] cần phải gọi hàm fopen[] và cuối cùng sau khi ghi xong các nội dung vào file thì cần gọi fclose[] để đóng file thu hồi tài nguyên hệ thống.

Dùng ký hiệu \n để ghi dòng mới [xuống dòng].

Ví dụ, ghi thêm nội dung vào file

Nếu muốn nối thêm nội dung vào file, bạn cần mở file với chế độ nối file 'a', Ví dụ:

Khi mở file bằng chế độ 'a' con trỏ file sẽ trỏ đến cuối file, đảm bảo rằng nội dung ghi sẽ nối vào file

Đọc nội dung file, hàm fread trong PHP

Để đọc các byte trong file, sử dụng hàm fread như sau:

fread[$stream,$length];

Với $stream là file đã mở để đọc và $length là số byte cần đọc. Bạn có thể dùng hàm filesize[$filename] để lấy cỡ file [bao nhiêu byte]. Ví dụ sau, mở một file ảnh từ địa chỉ URL, sau đó đọc toàn bộ nội dung của file, lưu lại file trên đĩa

Đọc một chuỗi trong file với hàm fgets trong PHP

Hàm fgets[$file] đọc một dòng tại vị trí con trỏ file hiện tại. Nếu vị trí con trỏ ở cuối file hàm sẽ trả về false / lỗi. Để kiểm tra con trỏ hiện tại ở cuối không dùng hàm feof[$file], nếu trả về true là ở cuối.

Ví dụ, mở file đọc tất cả các dòng:

Đọc toàn bộ nội dung file trong PHP

Hàm file[] đọc nội dung của file và đưa vào một mảng. Mỗi phần tử của mảng tương ứng với một dòng của file.

Đọc toàn bộ nội dung file với hàm file_get_contents trong PHP

Hàm file_get_contents[$filename] - đọc toàn bộ nội dung một file trả về một chuỗi là nội dung đó, tham số chỉ ra là tên filec cần đọc

$content = file_get_contents['//raw.githubusercontent.com/xuanthulabnet/learn-php/master/Readme.md'];
echo $content;

Hàm file_put_contents trong PHP

Hàm file_put_contents[$filename, $data, $flag = 0] lưu dữ liệu vào file có tên $filename, dữ liệu $data là một chuỗi, mảng dữ liệu. Nếu $flag = 0 sẽ ghi đè dữ liệu file nếu file tồn tại. Nếu $flag = FILE_APPEND thì nối thêm dữ liệu vào file.

// Ghi nói thêm một chuỗi vào file
file_put_contents['names.txt', 'xuanthulab', FILE_APPEND];
Hàm về fileDiễn giải
unlink[$filename] Hàm unlink trong PHP, dùng để xóa file trên đĩa
copy[$filename_source, $$filename_dest] Hàm copy trong PHP, dùng để copy file trên đĩa
rename[$oldname, $newname] Hàm copy trong PHP, dùng để đổi tên file trên đĩa
file_exists[$filename] Hàm file_exists trong PHP, trả về true thì file đang tồn tại

Chủ Đề