PHP - problémy s funkcemi při použití diakrtitiky

V PHP jsem se setkal s problémem, kdy se mi při použití funkcí níže začaly špatně počítat délky znaků a jinak zlobit, pokud jsem měl v použitém řetězci diakritiku.

Může být u funkcí check_encoding(), chr(), convert_case(), convert_encoding(), convert_kana(), convert_variables(), decode_mimeheader(), decode_numericentity(), detect_encoding(), detect_order(), encode_mimeheader(), encode_numericentity(), encoding_aliases(), ereg_match(), ereg_replace_callback(), ereg_replace(), ereg_search_getpos(), ereg_search_getregs(), ereg_search_init(), ereg_search_pos(), ereg_search_regs(), ereg_search_setpos(), ereg_search(), ereg(), eregi_replace(), eregi(), get_info(), http_input(), http_output(), internal_encoding(), language(), list_encodings(), ord(), output_handler(), parse_str(), preferred_mime_name(), regex_encoding(), regex_set_options(), scrub(), send_mail(), split(), strcut(), strimwidth(), stripos(), stristr(), strlen(), strpos(), strrchr(), strrichr(), strripos(), strrpos(), strstr(), strtolower(), strtoupper(), strwidth(), substitute_character(), substr_count(), substr().

Řešení:

Použijte stejné funkce, ale s předponou mb_. Proč? To vysvětlovat nebudu, podívejte se na http://php.net/manual/en/ref.mbstring.php.

Použitelné funkce vypadají takto:

mb_check_encoding(), mb_chrGet a specific character(), mb_convert_case(), mb_convert_encoding(), mb_convert_kana(), mb_convert_variables(), mb_decode_mimeheader(), mb_decode_numericentity(), mb_detect_encoding(), mb_detect_order(), mb_encode_mimeheader(), mb_encode_numericentity(), mb_encoding_aliases(), mb_ereg_match(), mb_ereg_replace_callback(), mb_ereg_replace(), mb_ereg_search_getpos(), mb_ereg_search_getregs(), mb_ereg_search_init(), mb_ereg_search_pos(), mb_ereg_search_regs(), mb_ereg_search_setpos(), mb_ereg_search(), mb_ereg(), mb_eregi_replace(), mb_eregi(), mb_get_info(), mb_http_input(), mb_http_output(), mb_internal_encoding(), mb_language(), mb_list_encodings(), mb_ord(), mb_output_handler(), mb_parse_str(), mb_preferred_mime_name(), mb_regex_encoding(), mb_regex_set_options(), mb_scrub(), mb_send_mail(), mb_split(), mb_strcut(), mb_strimwidth(), mb_stripos(), mb_stristr(), mb_strlen(), mb_strpos(), mb_strrchr(), mb_strrichr(), mb_strripos(), mb_strrpos(), mb_strstr(), mb_strtolower(), mb_strtoupper(), mb_strwidth(), mb_substitute_character(), mb_substr_count(), mb_substr().

Související články