(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
MessageFormatter::parseMessage -- msgfmt_parse_message — Быстро разбирает входную строку
Объектно-ориентированный стиль
$locale, string $pattern, string $message): array|falseПроцедурный стиль
Разбирает входную строку без явного создания объекта форматирования. Используйте эту функцию, когда операция форматирования выполняется только один раз и не требует сохранения параметров или состояния.
localeЛокаль, используемая для разбора частей, зависящих от локали
pattern
Шаблон, использующийся для разбора message.
message
Строка (string) для разбора, соответствующая pattern.
Массив (array), содержащий извлечённые элементы или false
в случае возникновения ошибки.
Пример #1 Пример использования msgfmt_parse_message()
<?php
$fmt = msgfmt_parse_message('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
"4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);
$fmt = msgfmt_parse_message('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
"4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>Пример #2 Пример использования в объектно-ориентированном стиле
<?php
$fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
"4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);
$fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen auf {1,number,integer} Bäumen sind {2,number} Affen pro Baum",
"4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>Результат выполнения приведённого примера:
array ( 0 => 4560, 1 => 123, 2 => 37.073, ) array ( 0 => 4560, 1 => 123, 2 => 37.073, )