Мультибайтові рядкові функції mbstring в мові PHP

Наша українська мова, як і будь-яка кирилиця, відноситься до багатобайтових з точки зору PHP. Тож ми не можемо для роботи з текстом використовувати звичайні рядкові функції. До прикладу, спробуйте порахувати кількість символів у слові «привіт» функцією strlen:

<?php
echo strlen(‘привіт’);
?> 

Замість 6 символів програма нарахує нам цілих 12 :) Некоректно будуть працювати й інші рядкові функції (пошук позиції, заміна, регістри тощо). Для роботи з багатобайтовими рядками (Multibyte String) в PHP існує спеціальне розширення php_mbstring. По замовчуванню це розширення вже увімкнено у будь-якого українського хостинг провайдера, тож можна одразу використовувати рядкові функції з префіксом «mb_» без редагування файлу php.ini.

Тепер замість strlen застосуємо функцію mb_strlen:

<?php
echo mb_strlen(‘привіт’);
?>     

Скрипт вірно виконав підрахунок символів, їх дійсно 6, а не хибно 12, як було раніше!

Далі я наводжу список усіх можливих «mb_» функцій для роботи з мультибайтовими рядками. Зверніть увагу, далеко не для всіх однобайтових рядкових функцій існують аналогічні «mb_» функції.

  • mb_check_encoding — перевіряє вірність обраного кодування
  • mb_chr — повертає символ за значенням кодової точки Unicode
  • mb_convert_case — змінює регістр символів рядка
  • mb_convert_encoding — перетворює рядок з одного кодування в інше
  • mb_convert_kana — аналогічно попередній функції, але застосовується для кодувань «kana»
  • mb_convert_variables — перетворює символи у змінній/змінних з одного кодування в інше
  • mb_encode_mimeheader — кодує рядок для MIME заголовка
  • mb_decode_mimeheader — декодує рядок в MIME заголовку
  • mb_encode_numericentity — кодує символ в числове HTML посилання
  • mb_decode_numericentity — кодує символ в числове HTML посилання
  • mb_detect_encoding — визначає кодування символів
  • mb_detect_order — встановлюємо/одержуємо список кодувань для механізмів визначення кодування
  • mb_encoding_aliases — отримати псевдоніми відомого типу кодування
  • mb_ereg_match — збіг з регулярним виразом для мультибайтових рядків
  • mb_ereg_replace_callback — 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 — отримати внутрішні налаштування mbstring
  • mb_http_input — визначити кодування символів вхідних даних HTTP запиту
  • mb_http_output — встановити/отримати кодування символів виводу HTTP
  • mb_internal_encoding — встановити/отримати внутрішнє кодування скрипту
  • mb_language — встановити/отримати поточну мову
  • mb_list_encodings — повертає масив всіх підтримуваних кодувань
  • mb_ord — отримати кодову точку символу Unicode
  • mb_output_handler — callback-функція, що перетворює кодування символів у вихідному буфері
  • mb_parse_str — розбір параметрів GET/POST/COOKIE запитів і встановлення глобальних змінних
  • mb_preferred_mime_name — отримати набір символів MIME
  • mb_regex_encoding — дізнатись/встановити поточне кодування для регулярних виразів (лише мультибайтові рядки)
  • mb_regex_set_options — отримати/налаштувати значення за замовчуванням налаштувань функцій mbregex
  • mb_scrub — не документовано
  • mb_send_mail — відправлення закодованого повідомлення
  • mb_split — розділ рядка за регулярним виразом
  • mb_str_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 — визначити ширину рядка
  • b_substitute_character — встановити/отримати символ заміни
  • mb_substr_count — рахує кількість входжень підрядка
  • mb_substr — повертає частину рядка (обрізає рядок за заданими параметрами)
VPS/VDS, хостинг Доступні VPS/VDS
2023-04-05   477