Trong bài viết trước của tôi, tôi sẽ giải thích cách chúng ta có thể tìm nạp dữ liệu từ html sang php trong các tệp riêng biệt. Trong bài viết này, tôi sẽ giải thích cách chúng ta có thể tìm nạp dữ liệu từ html trong cùng một tệp
Hãy lấy ví dụ tương tự khi chúng ta phải lấy hai số từ người dùng. Tạo tệp php và thêm mã html để tạo giao diện người dùng
Bây giờ tôi muốn khi tôi nhấp vào nút gửi thì mã php của tôi sẽ bắt đầu thực thi. Vì vậy, chúng tôi phải sử dụng chức năng isset để kiểm tra xem biểu mẫu đã được gửi hay chưa
PHP cung cấp các chức năng khác nhau để đọc dữ liệu từ tệp. Có các chức năng khác nhau cho phép bạn đọc tất cả dữ liệu tệp, đọc từng dòng dữ liệu và đọc từng ký tự dữ liệu
Các chức năng đọc tệp PHP có sẵn được đưa ra dưới đây
PHP đọc tệp - fread[]
Hàm PHP fread[] được sử dụng để đọc dữ liệu của tệp. Nó đòi hỏi hai đối số. tài nguyên tệp và kích thước tệp
cú pháp
$handle đại diện cho con trỏ tệp được tạo bởi hàm fopen[]
$length đại diện cho độ dài của byte được đọc
Ví dụ
đầu ra
this is first line this is another line this is third line
PHP đọc tệp - fgets[]
Hàm PHP fgets[] được sử dụng để đọc một dòng từ tệp
cú pháp
Ví dụ
đầu ra
PHP đọc tệp - fgetc[]
Hàm PHP fgetc[] được sử dụng để đọc một ký tự từ tệp. Để lấy tất cả dữ liệu bằng hàm fgetc[], hãy sử dụng. hàm feof[] bên trong vòng lặp while
file_get_contents[] là cách ưu tiên để đọc nội dung của tệp thành chuỗi. Nó sẽ sử dụng các kỹ thuật lập bản đồ bộ nhớ nếu được hệ điều hành của bạn hỗ trợ để nâng cao hiệu suất
Ghi chú
Nếu bạn đang mở một URI có ký tự đặc biệt, chẳng hạn như dấu cách, bạn cần mã hóa URI bằng urlencode[]
Thông số
filename
Tên file cần đọc
$filename
0Ghi chú
Hằng số
$filename
1 có thể được sử dụng để kích hoạt tìm kiếm. Điều này là không thể nếu được bật, vì$filename
1 là một số nguyên. Sử dụng$filename
3 để thay thế
$filename
4Tài nguyên ngữ cảnh hợp lệ được tạo bằng stream_context_create[]. Nếu bạn không cần sử dụng ngữ cảnh tùy chỉnh, bạn có thể bỏ qua tham số này trước null
$filename
6Phần bù nơi bắt đầu đọc trên luồng ban đầu. Độ lệch âm được tính từ cuối luồng
Tìm kiếm [$filename
6] không được hỗ trợ với các tệp từ xa. Cố gắng tìm kiếm trên các tệp không cục bộ có thể hoạt động với độ lệch nhỏ, nhưng điều này không thể đoán trước được vì nó hoạt động trên luồng được đệm
$filename
8Độ dài tối đa của dữ liệu đọc. Mặc định là đọc cho đến khi kết thúc tệp. Lưu ý rằng tham số này được áp dụng cho luồng do bộ lọc xử lý
Giá trị trả về
Hàm trả về dữ liệu đã đọc hoặc
string[14] "lle Bjori Ro"2 khi lỗi
Cảnh báo
Hàm này có thể trả về giá trị Boolean
string[14] "lle Bjori Ro"2, nhưng cũng có thể trả về giá trị không phải Boolean có giá trị là
string[14] "lle Bjori Ro"2. Vui lòng đọc phần về Booleans để biết thêm thông tin. Sử dụng toán tử === để kiểm tra giá trị trả về của hàm này
Lỗi/Ngoại lệ
Lỗi cấp độ
string[14] "lle Bjori Ro"52 được tạo nếu không thể tìm thấy
filename
, $filename
8 nhỏ hơn 0 hoặc nếu tìm kiếm $filename
6 được chỉ định trong luồng không thành côngKhi file_get_contents[] được gọi trên một thư mục, lỗi cấp độ
string[14] "lle Bjori Ro"52 được tạo trên Windows và kể từ PHP 7. 4 trên các hệ điều hành khác
Nhật ký thay đổi
Phiên bảnMô tả8. 0. 0____38 hiện không thể sử dụng được. 7. 1. 0Hỗ trợ cho$filename
6 âm đã được thêm vàoví dụ
Ví dụ #1 Lấy và xuất mã nguồn của trang chủ của một trang web
string[14] "lle Bjori Ro"59
Ví dụ #2 Tìm kiếm trong include_path
string[14] "lle Bjori Ro"20
Ví dụ #3 Đọc một phần của tệp
string[14] "lle Bjori Ro"21
Ví dụ trên sẽ xuất ra một cái gì đó tương tự như
string[14] "lle Bjori Ro"
Ví dụ #4 Sử dụng bối cảnh luồng
string[14] "lle Bjori Ro"22
string[14] "lle Bjori Ro"23
string[14] "lle Bjori Ro"24
ghi chú
Ghi chú. Hàm này an toàn nhị phân
Mẹo
Một URL có thể được sử dụng làm tên tệp với chức năng này nếu chức năng này đã được bật. Xem fopen[] để biết thêm chi tiết về cách chỉ định tên tệp. Xem Giao thức và Trình bao bọc được hỗ trợ để biết các liên kết đến thông tin về khả năng của các trình bao bọc khác nhau, ghi chú về cách sử dụng và thông tin về bất kỳ biến được xác định trước nào mà chúng có thể cung cấp
Cảnh báo
Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo
string[14] "lle Bjori Ro"25. PHP sẽ báo cáo điều này là "SSL. Fatal Protocol Error" khi bạn xem hết dữ liệu. Để giải quyết vấn đề này, giá trị của phải được hạ xuống mức không bao gồm cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS có lỗi khi bạn mở luồng bằng trình bao bọc
string[14] "lle Bjori Ro"26 và sẽ chặn cảnh báo. Khi sử dụng fsockopen[] để tạo ổ cắm
string[14] "lle Bjori Ro"27, nhà phát triển chịu trách nhiệm phát hiện và loại bỏ cảnh báo này