Básicamente, si dos cadenas se evalúan como las mismas en mi base de datos, también me gustaría poder verificarlas a nivel de aplicación. Por ejemplo, si alguien ingresa "bjork" en un campo de búsqueda, quiero que PHP pueda unirlo a la cadena "Björk" tal como lo haría MySQL.Cómo emular la compilación de MySQLs utf8_general_ci en las comparaciones de cadenas PHP
Supongo que PHP no tiene un equivalente directo a las opciones de intercalación de MySQL, y que lo más fácil sería escribir una función simple que convierta las cadenas, usando strtolower() para hacerlas uniformemente minúsculas y strstr() para reemplazar caracteres de varios bytes con sus correspondientes equivalentes ASCII.
¿Es eso una suposición precisa? ¿Alguien tiene una matriz a prueba de tontos útil para usar como el segundo parámetro de Strstr() para conformar cadenas como harían varias intercalaciones de MySQL (específicamente para mis necesidades actuales, utf8_general_ci)? O, sin eso, ¿dónde podría encontrar documentación de cómo exactamente las diferentes colaciones en MySQL tratan a varios personajes? (Vi en alguna parte que en algunas colaciones ß se trata como S y en otras como Ss, por ejemplo, pero no describía la evaluación de cada personaje.)
es posible ejecutar una consulta mysql y decirle a mysql qué intercalación usar para las cadenas que se le pasan, para ejecutar la comparación en el servidor mysql. podría no ser muy rápido pero crearía el comportamiento exacto. – hakre
Debo agregar que la eficiencia es de suma importancia. – Thor