Как имитировать сопоставление MySQLs utf8_general_ci при сравнении строк PHP

По сути, если две строки будут оцениваться как одинаковые в моей базе данных, я также хотел бы иметь возможность проверить это на уровне приложения. . Например, если кто-то вводит «bjork» в поле поиска, я хочу, чтобы PHP мог сопоставить это со строкой «Björk», как это сделал бы MySQL.

Я предполагаю, что PHP не имеет прямого эквивалента параметрам сортировки MySQL, и что проще всего было бы написать простую функцию, которая преобразует строки, используя strtolower (), чтобы сделать их одинаково строчными, а strstr ( ) для замены многобайтовых символов их соответствующими эквивалентами ASCII.

Это точное предположение? Есть ли у кого-нибудь надежный массив, который можно было бы использовать в качестве второго параметра strstr () для согласования строк, как это делали бы различные сопоставления MySQL (особенно для моих текущих потребностей, utf8_general_ci)? Или, в отсутствие этого, где я мог бы найти документацию о том, как разные сопоставления в MySQL обрабатывают разные символы? (Я где-то видел, что в некоторых сопоставлениях ß, например, рассматривается как S, а в других как Ss, но это не описывает оценку каждого символа.)

6
задан Thor 15 December 2011 в 02:17
поделиться