Если вы перезаписываете шаблон, вам нужно установить собственный модуль
Vendor_Module::images_dimensions_chart.phtml
, базовый путь для шаблонов внешнего интерфейса в вашем модуле всегда равен Vendor/Module/view/frontend/templates
Сопоставление не имеет никакого отношения к устройству хранения данных. Необходимо установить набор символов для определения кодирования устройства хранения данных. Сопоставление управляет, как сравнение и сортировка должны произойти. Сопоставление должно быть знающим набором символов, но иначе это не имеет никакого отношения к набору символов.
Для ответа на вопрос можно использовать iconv
трансзамусорить текст и затем сравнить его. Например:
function compare($s1, $s2) {
return strcmp(
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s1),
iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s2));
}
Это в основном, что MySql сделает для Вас, хотя это, вероятно, быстрее, и это может иметь немного отличающуюся таблицу сопоставления, чем ISO-8859-1//TRANSLIT
. Не совсем уверенный в этом.
Вероятно, было бы легче использовать базу данных, хотя, как другие уже предположили.
Почему Вы только не позволяете MySQL решить, существует ли уже запись с тем же ключом?
Вы могли выполнить a SELECT
запрос, чтобы спросить, существует ли уже запись с этим атрибутом:
SELECT 1
FROM UniTest
WHERE str = "À"
Или Вы просто даете ему попытку, вставляющую новую запись, и используете функции mysql_error () и mysql_errno (), чтобы видеть, произошла ли ошибка.
Был бы это быть разумным только позволить MySQL сделать работу, путем представления запроса MySQL как:
SELECT CASE WHEN '$a' = '$b' THEN 1 ELSE 0 END
Вы могли одноразовый выполнять итерации через весь набор символов интереса, декартова соединенный с собой и создавать стандарт php ассоциативный массив эквивалентных наборов.
for each $char1 in $charset { for each $char2 in $charset { $charmatch[$char1][$char2] = mysqlTestMatch($char1, $char2)); } }
Затем необходимо было бы протестировать каждый символ строки символом, чтобы видеть, если a), они - то же, или в противном случае b), они эквивалентны.
Так, если бы я получаю его правильно, Вы хотите сделать, подобное выдерживает сравнение в PHP, поскольку Вы вошли бы в проверку по сравнению с регистрацией Общего индекса UTF-8 MySQL?
Самая легкая вещь состояла бы в том, чтобы создать функцию помощника, которая преобразует строку согласно правилам utf8_general_ci, используемым MySSQL, который должен главным образом преобразовать определенные буквы в основную букву.
Правила для того сопоставления MySQL перечислены здесь:
http://www.collation-charts.org/mysql60/mysql604.utf8_general_ci.european.html
Например, если Вы прокрутите вниз просто немного к "золоту" слева, то Вы будете видеть все символы, которые преобразовываются в это A.
Учитывая функцию помощника, вызванную, например, utf8g_to_ascii()
, Вы могли записать функцию:
function utf8_compare($s1, $s2) {
$a = utf8g_to_ascii($s1);
$b = utf8g_to_ascii($s2);
return strcmp( $a, $b );
}
Я смоделировал бы свой код после:
http://dev.splitbrain.org/view/darcs/dokuwiki/inc/utf8.php