Я пытаюсь автоматически конвертировать импортированные метаданные IPTC из изображений в UTF-8 для хранения в базе данных на mb_ функций PHP mb_ . В настоящее время это выглядит так: $val = mb_convert_encoding($val, 'UTF-8', mb_detect_encoding($val)); Однако, когда mb_detect_encoding() предоставляется строка ASCII (специальные символы в латинских1 полях от 192-255), она обнаруживает ее как UTF-8, поэтому в следующей попытке […]
Я пытаюсь использовать этот метод в String Filter: public function truncate($string, $chars = 50, $terminator = ' …'); Я бы ожидал этого $in = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYXZ1234567890"; $out = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV …"; а также $in = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝ"; $out = "âãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđ …"; Это $chars минус символы строки $terminator . Кроме того, фильтр должен разрезать на границе первого слова ниже […]
В PHP нет многобайтовых «preg» -функций, значит, это означает, что preg_functions по умолчанию является безопасным? Не удалось найти упоминания в документации php.
Учитывая некоторые многобайтовые наборы символов, могу ли я предположить, что следующее не делает то, что оно предназначалось? $string = str_replace('"', '\\"', $string); В частности, если вход был в наборе символов, который может иметь допустимый символ, например, 0xbf5c, так что злоумышленник может ввести 0xbf22, чтобы получить 0xbf5c22, оставив действительный символ, за которым следует некорректная двойная кавычка […]
wordwrap() PHP не работает правильно для многобайтовых строк, таких как UTF-8. В комментариях есть несколько примеров безопасных функций mb, но с некоторыми различными тестовыми данными все они, похоже, имеют некоторые проблемы. Функция должна принимать те же параметры, что и wordwrap() . В частности, убедитесь, что он работает: вырезать среднее слово, если $cut = true , […]
По-видимому, в mb_* нет mb_trim , поэтому я пытаюсь реализовать его самостоятельно. Я недавно нашел это регулярное выражение в комментарии на php.net : /(^\s+)|(\s+$)/u Поэтому я бы выполнил его следующим образом: function multibyte_trim($str) { if (!function_exists("mb_trim") || !extension_loaded("mbstring")) { return preg_replace("/(^\s+)|(\s+$)/u", "", $str); } else { return mb_trim($str); } } Регулярное выражение кажется правильным для […]
Я пишу файловый менеджер и вам нужно проверять каталоги и работать с переименованием файлов, которые могут иметь многобайтовые символы. Я работаю над этим локально в Windows / Apache PHP 5.3.8 со следующими именами файлов в каталоге: filename.jpg имяфайла.jpg Файл 件 name.jpg פילענאַמע. JPG 文件 名 .jpg Тестирование на реальном сервере UNIX прекратилось. Тестирование локально в […]
Кто-нибудь написал многобайтовый вариант функции strtr ()? Мне нужен этот. Изменить 1 (пример желаемого использования): Пример: $ from = 'ľľščťžýáíŕďňäô'; // эти символы находятся в UTF-8 $ to = 'llsctzyaiŕdnao'; // ввод – в UTF-8 $ str = 'Kŕdeľ ďatľov učí koňa žrať kôru.'; $ str = mb_strtr ($ str, $ from, $ to); // […]
Я перевел данные из MySQL 4 (они были первоначально установлены в latin2 encoding ) в MySQL 5 и установил кодировку в utf-8 . Он хорошо выглядит в phpMyAdmin , и utf-8 в порядке. Однако на некоторых сайтах есть вопросительные знаки! Кодировка сайта также установлена на utf8 поэтому я не понимаю, где проблема. Файлы PHP и […]
Это мой PHP-код: <?php $result = ''; $str = 'Тугайный соловей'; for ($y=0; $y < strlen($str); $y++) { $tmp = mb_substr($str, $y, 1); $result = $result . $tmp; } echo 'result = ' . $result; Выход: Тугайный Ñоловей Что я могу сделать? Я должен положить $result в базу данных MySQL.