Cách php làm thế nào để bỏ qua tệp với BOM với các ví dụ

Để bỏ qua một tệp có BOM [Dấu thứ tự byte] trong PHP, bạn có thể sử dụng phương pháp sau

  1. Mở tệp ở chế độ nhị phân bằng hàm fopen[]. Điều này sẽ cho phép bạn đọc và ghi tệp dưới dạng luồng byte, thay vì dưới dạng một chuỗi ký tự

$file = fopen["file.txt", "rb"];

  1. Đọc một vài byte đầu tiên của tệp để kiểm tra BOM. BOM là một chuỗi byte xuất hiện ở đầu tệp để biểu thị thứ tự byte và mã hóa của tệp

$bom = fread[$file, 3];

  1. Kiểm tra giá trị của biến $bom để xác định xem nó có chứa BOM hay không. BOM cho các tệp được mã hóa UTF-8 là chuỗi byte
    $bom = fread[$file, 3];
    0

if [$bom === "\xEF\xBB\xBF"] {
    // BOM found
}

  1. Nếu BOM được tìm thấy, hãy bỏ qua nó bằng cách tìm đến byte thứ tư của tệp

if [$bom === "\xEF\xBB\xBF"] {
    fseek[$file, 3];
}

  1. Bây giờ bạn có thể đọc và xử lý phần còn lại của tệp như bình thường

while [!feof[$file]] {
    $line = fgets[$file];
    // process line
}

  1. Nhớ đóng tệp khi bạn hoàn thành

fclose[$file];

Đây là ví dụ mã hoàn chỉnh.

$file = fopen["file.txt", "rb"];
$bom = fread[$file, 3];
if [$bom === "\xEF\xBB\xBF"] {
    fseek[$file, 3];
}
while [!feof[$file]] {
    $line = fgets[$file];
    // process line
}
fclose[$file];

Mã này sẽ mở tệp ở chế độ nhị phân, kiểm tra BOM và bỏ qua nó nếu có. Sau đó, nó sẽ đọc và xử lý phần còn lại của tệp như bình thường

Cách php cách bỏ qua tệp có BOM với các ví dụ - php cách bỏ qua tệp có BOM

Chủ Đề