Я получаю некоторые данные, имеющие сопоставление UTF8 ( utf8_unicode_ci ) из базы данных MySQL с PHP. Я использую этот фрагмент кода: function advancedDatabaseSearch($pattern, $lpref) { $link = mysql_connect(DB_URL, DB_USER, DB_PWD); if (!$link) { return 'Could not connect: ' . mysql_error(); } $esc_value = mysql_real_escape_string($pattern); $esc_lpref = mysql_real_escape_string($lpref); mysql_select_db(DB_NAME, $link); $query = "SELECT RAWVALUE FROM rawvalueitem […]
У меня есть следующий код PHP: $search = "foo bar que"; $search_string = str_replace(" ", "|", $search); $text = "This is my foo text with qué and other accented characters."; $text = preg_replace("/$search_string/i", "<b>$0</b>", $text); echo $text; Очевидно, что «que» не соответствует «qué». Как я могу это изменить? Есть ли способ сделать preg_replace игнорировать все […]
Я ищу метод или, возможно, таблицу преобразования, которая знает, как конвертировать Umlauts и специальные символы в их наиболее вероятное представление в ascii. Пример: Ärger = aerger Bôhme = bohme Søren = soeren pjérà = pjera Любая идея? Обновление : кроме хорошего принятого ответа, я также нашел PECLs Normalizer довольно интересным, хотя я не могу его […]
Я пытаюсь заменить акцентированные символы обычной заменой. Вот что я сейчас делаю. $string = "Éric Cantona"; $strict = strtolower($string); echo "After Lower: ".$strict; $patterns[0] = '/[á|â|à|å|ä]/'; $patterns[1] = '/[ð|é|ê|è|ë]/'; $patterns[2] = '/[í|î|ì|ï]/'; $patterns[3] = '/[ó|ô|ò|ø|õ|ö]/'; $patterns[4] = '/[ú|û|ù|ü]/'; $patterns[5] = '/æ/'; $patterns[6] = '/ç/'; $patterns[7] = '/ß/'; $replacements[0] = 'a'; $replacements[1] = 'e'; $replacements[2] = […]
У меня есть некоторые тексты на французском языке (содержащие акцентированные символы, такие как «é»), которые хранятся в таблице MySQL, сортировка которой – utf8_unicode_ci (как таблица, так и столбцы), которую я хочу выводить на странице HTML5. HTML-кодировка UTF-8 (<meta charset = "utf-8" />), а сами файлы PHP кодируются как «UTF-8 без спецификации» (я использую Notepad ++ […]
Я хотел бы проверить строку с шаблоном, который может содержать только буквы (включая буквы с акцентами). Вот код, который я использую, и он всегда возвращает «nok». Я не знаю, что я делаю неправильно, можете ли вы помочь? благодаря $string = 'é'; if(preg_match( '/^[\p{L}]+$/i', $string)) { echo 'ok'; } else{ echo 'nok'; }