Về cơ bản, nếu hai chuỗi sẽ đánh giá như nhau trong cơ sở dữ liệu của tôi, tôi cũng muốn có thể kiểm tra ở cấp ứng dụng. Ví dụ: nếu ai đó nhập "bjork" vào trường tìm kiếm, tôi muốn PHP có thể khớp với chuỗi đó với chuỗi "Björk" giống như MySQL. Tôi đoán PHP không có tương đương trực tiếp với các tùy chọn đối chiếu của MySQL và điều đơn giản nhất là viết một hàm đơn giản để chuyển đổi các chuỗi, sử dụng strtolower() để làm cho chúng trở nên đồng đều và strstr.() để thay thế các ký tự nhiều byte với tương đương ASCII tương ứng của chúng.Làm thế nào để mô phỏng các khớp nối utf8_general_ci của MySQL trong so sánh chuỗi PHP
Đó có phải là giả định chính xác không? Có ai có một mảng fool-proof tiện dụng để sử dụng như là tham số thứ hai của strstr() cho phù hợp với chuỗi như collations MySQL khác nhau sẽ làm gì (đặc biệt cho nhu cầu hiện tại của tôi, utf8_general_ci)? Hoặc, thiếu điều đó, nơi tôi có thể tìm thấy tài liệu về chính xác cách các collations khác nhau trong MySQL xử lý các nhân vật khác nhau? (Tôi thấy ở đâu đó rằng trong một số collations ß được coi là S và những người khác như Ss, ví dụ, nhưng nó không phác thảo mọi đánh giá nhân vật.)
có thể chạy truy vấn mysql và cho mysql biết collation để sử dụng cho chuỗi được truyền cho nó, do đó, để chạy so sánh trên máy chủ mysql. có thể không nhanh nhưng sẽ tạo ra hành vi chính xác. – hakre
Tôi nên thêm hiệu quả đó là điều quan trọng nhất. – Thor