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
"); 
                } 
            } 
        } 
    } 
    return $result; 
} 

$files = file_array("."); 
?>

Làm cách nào để lưu tệp mà không có BOM?

Để đảm bảo các tệp PHP của bạn không có BOM, hãy làm theo các bước sau. .
Tải xuống và cài đặt trình soạn thảo văn bản miễn phí mạnh mẽ này. Sổ tay ++
Mở tệp bạn muốn xác minh/sửa chữa trong Notepad++
Trong menu trên cùng, chọn Mã hóa > Chuyển đổi sang UTF-8 (tùy chọn không có BOM)
Lưu các tập tin

Làm cách nào tôi có thể xóa BOM khỏi UTF

Tải xuống Notepad ++
Để kiểm tra xem ký tự BOM có tồn tại hay không, hãy mở tệp bằng Notepad ++ và nhìn vào góc dưới cùng bên phải. Nếu nó nói UTF-8-BOM thì tệp chứa ký tự BOM
Để xóa ký tự BOM, hãy chuyển đến Mã hóa và chọn Mã hóa bằng UTF-8
Lưu tệp và thử nhập lại

Làm cách nào để xóa I >> khỏi đầu tệp?

Mở các tệp này trong một số trình chỉnh sửa thích hợp (nhận ra BOM) như Eclipse
Thay đổi mã hóa của tệp thành ISO (nhấp chuột phải, thuộc tính)
Cắt  từ đầu tệp, lưu
Thay đổi mã hóa của tệp trở lại UTF-8

UTF không có BOM là gì?

Mã hóa UTF-8 không có BOM có thuộc tính tài liệu chỉ chứa các ký tự từ phạm vi US-ASCII được mã hóa từng byte giống như cách mã hóa . Một tài liệu như vậy có thể được xử lý và hiểu khi được mã hóa dưới dạng UTF-8 hoặc US-ASCII. . Such a document can be processed and understood when encoded either as UTF-8 or as US-ASCII.