Reference
In This Article
Filters
zend-i18n ships with a set of internationalization-related filters.
Alnum
The Alnum filter can be used to return only alphabetic characters and digits in the unicode
"letter" and "number" categories, respectively. All other characters are suppressed.
Supported Options
The following options are supported for Alnum:
Alnum([ boolean $allowWhiteSpace [, string $locale ]])
$allowWhiteSpace: If set to true, whitespace characters are allowed; otherwise they are suppressed. Default isfalse(whitespace is not allowed). Methods for getting/setting the allowWhiteSpace option are also available (getAllowWhiteSpace()andsetAllowWhiteSpace()).$locale: The locale string used in identifying the characters to filter (locale name, e.g.en_US). If unset, it will use the default locale (Locale::getDefault()). Methods for getting/setting the locale are also available (getLocale()andsetLocale()).
Basic Usage
// Default settings, deny whitespace
$filter = new \Zend\I18n\Filter\Alnum();
echo $filter->filter("This is (my) content: 123");
// Returns "Thisismycontent123"
// First param in constructor is $allowWhiteSpace
$filter = new \Zend\I18n\Filter\Alnum(true);
echo $filter->filter("This is (my) content: 123");
// Returns "This is my content 123"
Supported languages
Alnumworks for most languages, except Chinese, Japanese and Korean. Within these languages, the English alphabet is used instead of the characters from these languages. The language itself is detected using theLocaleclass.
Alpha
The Alpha filter can be used to return only alphabetic characters in the unicode "letter"
category. All other characters are suppressed.
Supported Options
The following options are supported for Alpha:
Alpha([ boolean $allowWhiteSpace [, string $locale ]])
$allowWhiteSpace: If set to true, whitespace characters are allowed; otherwise they are suppressed. Default isfalse(whitespace is not allowed). Methods for getting/setting the allowWhiteSpace option are also available (getAllowWhiteSpace()andsetAllowWhiteSpace()).$locale: The locale string used in identifying the characters to filter (locale name, e.g.en_US). If unset, it will use the default locale (Locale::getDefault()). Methods for getting/setting the locale are also available (getLocale()andsetLocale()).
Basic Usage
// Default settings, deny whitespace
$filter = new \Zend\I18n\Filter\Alpha();
echo $filter->filter("This is (my) content: 123");
// Returns "Thisismycontent"
// Allow whitespace
$filter = new \Zend\I18n\Filter\Alpha(true);
echo $filter->filter("This is (my) content: 123");
// Returns "This is my content "
Supported languages
Alnumworks for most languages, except Chinese, Japanese and Korean. Within these languages, the English alphabet is used instead of the characters from these languages. The language itself is detected using theLocaleclass.
NumberFormat
The NumberFormat filter can be used to return locale-specific number and
percentage strings. It extends the NumberParse filter, which acts as wrapper
for the NumberFormatter class within ext/intl.
Supported Options
The following options are supported for NumberFormat:
NumberFormat([ string $locale [, int $style [, int $type ]]])
$locale: The locale string used in identifying the characters to filter (locale name, e.g.en_US). If unset, it will use the default locale (Locale::getDefault()). Methods for getting/setting the locale are also available (getLocale()andsetLocale()).$style: (Optional) Style of the formatting, one of theNumberFormatterformat style constants. If unset, it will useNumberFormatter::DEFAULT_STYLEas the default style. Methods for getting/setting the format style are also available (getStyle()andsetStyle()).$type: (Optional) TheNumberFormatterformatting type to use. If unset, it will useNumberFormatter::TYPE_DOUBLEas the default type. Methods for getting/setting the format type are also available (getType()andsetType()).
Basic Usage
$filter = new \Zend\I18n\Filter\NumberFormat('de_DE');
echo $filter->filter(1234567.8912346);
// Returns "1.234.567,891"
$filter = new \Zend\I18n\Filter\NumberFormat('en_US', NumberFormatter::PERCENT);
echo $filter->filter(0.80);
// Returns "80%"
$filter = new \Zend\I18n\Filter\NumberFormat('fr_FR', NumberFormatter::SCIENTIFIC);
echo $filter->filter(0.00123456789);
// Returns "1,23456789E-3"
NumberParse
The NumberParse filter can be used to parse a number from a string. It acts as
a wrapper for the NumberFormatter class within ext/intl.
Supported Options
The following options are supported for NumberParse:
NumberParse([ string $locale [, int $style [, int $type ]]])
$locale: The locale string used in identifying the characters to filter (locale name, e.g.en_US). If unset, it will use the default locale (Locale::getDefault()). Methods for getting/setting the locale are also available (getLocale()andsetLocale()).$style: (Optional) Style of the parsing, one of theNumberFormatterformat style constants. If unset, it will useNumberFormatter::DEFAULT_STYLEas the default style. Methods for getting/setting the parse style are also available (getStyle()andsetStyle()).$type: (Optional) TheNumberFormatterparsing type to use. If unset, it will useNumberFormatter::TYPE_DOUBLEas the default type. Methods for getting/setting the parse type are also available (getType()andsetType()).
Basic Usage
$filter = new \Zend\I18n\Filter\NumberParse('de_DE');
echo $filter->filter('1.234.567,891');
// Returns 1234567.8912346
$filter = new \Zend\I18n\Filter\NumberParse('en_US', NumberFormatter::PERCENT);
echo $filter->filter('80%');
// Returns 0.80
$filter = new \Zend\I18n\Filter\NumberParse('fr_FR', NumberFormatter::SCIENTIFIC);
echo $filter->filter('1,23456789E-3');
// Returns 0.00123456789
Found a mistake or want to contribute to the documentation? Edit this page on GitHub!