PHP - Tệp & I / O
Chương này sẽ giải thích các chức năng sau liên quan đến tệp:
- Mở tệp
- Đọc một tập tin
- Viết một tập tin
- Đóng tệp
Mở và đóng tệp
PHP fopen()được sử dụng để mở một tệp. Nó yêu cầu hai đối số nêu rõ đầu tiên là tên tệp và sau đó là chế độ hoạt động.
Chế độ tệp có thể được chỉ định là một trong sáu tùy chọn trong bảng này.
Sr.No | Chế độ & Mục đích |
---|---|
1 |
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 Chỉ mở tệp để ghi. Đặt con trỏ tệp ở đầu tệp. và cắt ngắn tệp thành độ dài bằng 0. Nếu tệp 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 0. Nếu tệp không tồn tại thì nó cố gắng tạo một tệp. |
5 |
a Chỉ mở tệp để ghi. Đặt con trỏ tệp ở cuối tệp. Nếu tệp không tồn tại thì nó sẽ cố gắng tạo tệp. |
6 |
a+ Mở tệp chỉ để đọc và ghi. Đặt con trỏ tệp ở cuối tệp. Nếu tệp không tồn tại thì nó sẽ cố gắng tạo tệp. |
Nếu cố gắng mở tệp không thành công thì fopen trả về giá trị false nếu không nó trả về một file pointer được sử dụng để đọc hoặc ghi thêm vào tệp đó.
Sau khi thực hiện các thay đổi đối với tệp đã mở, điều quan trọng là phải đóng tệp đó bằng fclose()chức năng. Cácfclose() hàm yêu cầu một con trỏ tệp làm đối số của nó và sau đó trả về true khi đóng cửa thành công hoặc false nếu nó không thành công.
Đọc một tập tin
Khi tệp được mở bằng fopen() nó có thể được đọc với một hàm được 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 tệp có thể được tìm thấy bằng cách sử dụng filesize() hàm lấy tên tệp làm đối số 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 fopen() chức năng.
Nhận độ dài của tệp bằng cách sử dụng filesize() chức năng.
Đọc nội dung của tệp bằng cách sử dụng fread() chức năng.
Đóng tệp bằng fclose() chức năng.
Ví dụ sau đây gán nội dung của tệp văn bản cho một biến, sau đó hiển thị các nội dung đó trên trang web.
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "tmp.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "<pre>$filetext</pre>" );
?>
</body>
</html>
Nó sẽ tạo ra kết quả sau:
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 nối vào tệp hiện có bằng cách sử dụng PHP fwrite()chức năng. Hàm này yêu cầu hai đối số chỉ định mộtfile pointervà chuỗi dữ liệu sẽ được ghi. Tùy chọn, một đối số số nguyên thứ ba có thể được đưa vào để chỉ định độ dài của dữ liệu cần ghi. Nếu đối số thứ ba được bao gồm, việc ghi sẽ dừng lại sau khi đạt đến độ dài được 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 vào 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ụngfile_exist() hàm lấy tên tệp làm đối số
<?php
$filename = "/home/user/guest/newfile.txt";
$file = fopen( $filename, "w" );
if( $file == false ) {
echo ( "Error in opening new file" );
exit();
}
fwrite( $file, "This is a simple test\n" );
fclose( $file );
?>
<html>
<head>
<title>Writing a file using PHP</title>
</head>
<body>
<?php
$filename = "newfile.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "$filetext" );
echo("file name: $filename");
?>
</body>
</html>
Nó sẽ tạo ra kết quả sau:
Chúng tôi đã trình bày tất cả các chức năng liên quan đến nhập và xuất tệp trong chương Chức năng hệ thống tệp PHP .