Tôi cần một ví dụ hoặc thư viện mã sẽ phân tích cú pháp tiêu đề Accept-Language
và trả lại ngôn ngữ ưa thích cho tôi. RFC2616 khẳng định rằng:Cần một ví dụ về cách nhận ngôn ngữ ưa thích từ tiêu đề yêu cầu Chấp nhận Ngôn ngữ
Trường Accept-Language request-tiêu đề cũng tương tự như Chấp nhận, nhưng hạn chế các thiết lập của ngôn ngữ tự nhiên được ưa chuộng như một phản ứng ứng yêu cầu. Các thẻ ngôn ngữ được định nghĩa trong phần 3.10.
Accept-Language = "Accept-Language" ":" 1#(language-range [ ";" "q" "=" qvalue ]) language-range = ((1*8ALPHA *("-" 1*8ALPHA)) | "*")
Mỗi ngôn ngữ tầm CÓ THỂ được đưa ra một giá trị chất lượng có liên quan mà đại diện cho một ước tính ưu tiên của người dùng cho các ngôn ngữ định bởi phạm vi đó. Giá trị chất lượng mặc định là "q = 1".
Đọc thêm cho thấy có quá nhiều "tùy chọn", "nên", "có thể" và các phiên nói khác ngăn tôi phát minh lại bánh xe - tất cả những gì tôi muốn biết là người dùng ngôn ngữ nào thích, trình duyệt trả lời câu hỏi này hàng tỷ lần mỗi ngày.
Bất kỳ đoạn mã nào bằng bất kỳ ngôn ngữ nào (ngoại trừ Lisp và Assembler) đều hữu ích.
Rất cám ơn trước!
Huh! Có gì chống lại Lisp? :) – shambulator
Tách bằng dấu phẩy (và dấu cách trước nếu có), sau đó thẩm vấn từng mã thông báo. Ngôn ngữ là phần đầu tiên, sau đó (nếu có) một mã q (ưu tiên ưu tiên). Cuối cùng, sắp xếp theo giá trị q (sự hiểu biết của tôi là những giá trị không có q được hiểu là "1"). –
@Anton, tôi không thể đếm được dấu ngoặc đơn :) – Osw