Mở và đóng tệp trong PHP

Khả năng thao tác với các tệp có thể vừa thú vị vừa hữu ích. Bước đầu tiên của quy trình là xác định tệp mà bạn muốn thao tác và mở tệp đó.

PHP sử dụng hàm fopen() với mục đích mở tệp hiện có hoặc tạo tệp mới nếu tệp được chỉ định chưa tồn tại. Cú pháp hàm là. fopen(tên tệp, phương thức);

Rõ ràng là "tên tệp" đề cập đến tên (và cũng là đường dẫn) của tệp, nhưng phương pháp có thể không hoàn toàn rõ ràng. Nó đề cập đến loại quyền truy cập được phép mỗi khi tệp được mở. Các tùy chọn phổ biến nhất là

ModeDescriptionrMở chỉ để đọc; . r+Mở để đọc và viết; . wChỉ mở để viết; . Nếu tệp không tồn tại, hãy thử tạo nó. w+Mở để đọc và viết; . Nếu tệp không tồn tại, hãy thử tạo nó. aChỉ mở để viết; . Nếu tệp không tồn tại, hãy thử tạo nó. a+Mở để đọc và viết; . Nếu tệp không tồn tại, hãy thử tạo nó. Chỉ tạo và mở để viết; . Nếu tệp đã tồn tại, lệnh gọi fopen() sẽ không thành công bằng cách trả về FALSE và tạo ra lỗi ở mức E_WARNING. Nếu tệp không tồn tại, hãy thử tạo nó. x+Tạo và mở để đọc và viết; . cMở tệp chỉ để ghi. Nếu tệp không tồn tại, nó được tạo. Nếu nó tồn tại, thì nó không bị cắt bớt (trái ngược với 'w'), cũng như lệnh gọi hàm này không thành công (như trường hợp của 'x'). Con trỏ tệp được định vị ở đầu tệp. c+Mở tệp để đọc và ghi;

Khi sử dụng fopen(), một xử lý tệp được trả về xác định kết nối tệp đang mở và sau này sẽ được sử dụng để đọc/ghi/đóng tệp, tất cả các bước rất quan trọng. Chúng tôi có thể lưu trữ xử lý tệp đó trong một biến. Hãy xem xét một số ví dụ về cách mở tệp

  $FileHandle1 = fopen('storage.txt', 'w');

  $FileHandle2 = fopen('http://www.your-website.com/', 'a+') or die("Uh-oh! Errors!");

  $FileName = "directory-path-to-file/filename.php";

  $FileHandle3 = fopen($FileName, 'r');
?>

Vì vậy, như bạn có thể thấy, bạn có thể kết hợp và kết hợp các tùy chọn của mình khi cần để hoàn thành công việc

Phần quan trọng nhất của việc mở tệp là nhớ đóng tệp khi bạn chỉnh sửa xong. Hàm fclose() chấp nhận một tham số, tham số đó là phần xử lý tệp của tệp đang mở cần đóng

  $FileHandle1 = fopen('storage.txt', 'w');
  fclose($FileHandle1);

  $FileHandle2 = fopen('http://www.your-website.com/', 'a+') or die("Uh-oh! Errors!");
  fclose($FileHandle2);

  $FileName = "/directory-path-to-file/filename.php";
  $FileHandle3 = fopen($FileName, 'r');
  fclose($FileHandle3);
?>

Nếu bạn gặp lỗi khi mở/chỉnh sửa/đóng tệp, có thể là do PHP không có quyền chỉnh sửa tệp trên máy chủ. Bạn sẽ cần kích hoạt quyền ghi trong thư mục chứa tệp

Hàm PHP fopen() được sử dụng để mở tệp. Nó yêu cầu hai đối số nêu rõ tên tệp đầu tiên và sau đó là chế độ hoạt động

Các chế độ tệp có thể được chỉ định là một trong sáu tùy chọn trong bảng này

Sr. KhôngChế độ & Mục đích1

r

Mở tệp chỉ để đọc

Đặt con trỏ tệp ở đầu tệp

2

r+

Mở tệp để đọc và ghi

Đặt con trỏ tệp ở đầu tệp

3

w

Mở tệp chỉ để ghi

Đặt con trỏ tệp ở đầu tệp

và cắt ngắn tệp thành độ dài bằng không. Nếu tập tin không

tồn tại thì nó cố gắng tạo một tệp

4

w+

Mở tệp chỉ để đọc và ghi

Đặt con trỏ tệp ở đầu tệp

và cắt ngắn tệp thành độ dài bằng không. Nếu tập tin không

tồn tại thì nó cố gắng tạo một tệp

5

a

Mở tệp chỉ để ghi

Đặt con trỏ tệp ở cuối tệp

Nếu các tệp không tồn tại thì nó sẽ cố gắng tạo một tệp

6

một +

Mở tệp chỉ để đọc và ghi

Đặt con trỏ tệp ở cuối tệp

Nếu các tệp không tồn tại thì nó sẽ cố gắng tạo một tệp

Nếu cố gắng mở một tệp không thành công thì fopen trả về giá trị sai, nếu không, nó trả về một con trỏ tệp được sử dụng để đọc hoặc ghi thêm vào tệp đó

Sau khi thực hiện thay đổi đối với tệp đã mở, điều quan trọng là phải đóng tệp đó bằng hàm fclose(). Hàm fclose() yêu cầu một con trỏ tệp làm đối số của nó và sau đó trả về true khi đóng thành công hoặc trả về false nếu đóng không thành công

Đọc một tập tin

Khi tệp được mở bằng hàm fopen(), nó có thể được đọc bằng hàm gọi là fread(). Hàm này yêu cầu hai đối số. Đây phải là con trỏ tệp và độ dài của tệp được biểu thị bằng byte

Độ dài của tệp có thể được tìm thấy bằng cách sử dụng hàm filesize() lấy tên tệp làm đối số của nó và trả về kích thước của tệp được biểu thị bằng byte

Vì vậy, đây là các bước cần thiết để đọc một tệp bằng PHP

  • Mở tệp bằng hàm fopen()

  • Lấy độ dài của tệp bằng hàm filesize()

  • Đọc nội dung của tệp bằng hàm fread()

  • Đóng tệp bằng hàm fclose()

Ví dụ sau gán nội dung của tệp văn bản cho một biến rồi hiển thị các nội dung đó trên trang web


   
      Reading a file using PHP
   
   
   
      
      $filetext
" ); ?>

Nó sẽ tạo ra kết quả sau -

Mở và đóng tệp trong PHP

Viết một tập tin

Một tệp mới có thể được viết hoặc văn bản có thể được thêm vào một tệp hiện có bằng hàm PHP fwrite(). Hàm này yêu cầu hai đối số chỉ định một con trỏ tệp và chuỗi dữ liệu sẽ được ghi. Tùy chọn có thể bao gồm đối số số nguyên thứ ba để chỉ định độ dài của dữ liệu cần ghi. Nếu bao gồm đối số thứ ba, quá trình viết sẽ dừng sau khi đạt đến độ dài đã chỉ định

Ví dụ sau tạo một tệp văn bản mới, sau đó viết một tiêu đề văn bản ngắn bên trong nó. Sau khi đóng tệp này, sự tồn tại của nó được xác nhận bằng cách sử dụng hàm file_exist() lấy tên tệp làm đối số

Làm cách nào để đóng tệp PHP?

Giống như trong C hoặc Perl, PHP yêu cầu các lệnh phải được kết thúc bằng dấu chấm phẩy ở cuối mỗi câu lệnh . Thẻ đóng của một khối mã PHP tự động bao hàm dấu chấm phẩy; .

Chế độ mở tệp trong PHP là gì?

Ví dụ

Làm cách nào để mở tệp PHP bằng PHP?

php” được đặt trong thư mục “htdocs”. Nếu bạn muốn chạy nó, hãy mở bất kỳ trình duyệt web nào và nhập “localhost/demo. php” và nhấn enter . Chương trình của bạn sẽ chạy.

Có bao nhiêu chế độ được sử dụng để mở một tệp trong PHP?

Trong xử lý tệp PHP, có bốn bộ các chế độ có thể. Đây là, {r và r+} – Để đọc các tệp hiện có. {w and w+} – Để thay đổi toàn bộ nội dung tập tin.