I18n Filters

Zend Framework comes with a set of filters related to Internationalization.

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 for Alnum Filter

The following options are supported for Alnum:

Alnum([ boolean $allowWhiteSpace [, string $locale ]])

  • $allowWhiteSpace: If set to true then whitespace characters are allowed. Otherwise they are suppressed. Default is “false” (whitespace is not allowed).

    Methods for getting/setting the allowWhiteSpace option are also available: getAllowWhiteSpace() and setAllowWhiteSpace()

  • $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() and setLocale()

Alnum Filter Usage

1
2
3
4
5
6
7
8
9
// 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"

Note

Alnum works on almost all 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 the Locale.

Alpha

The Alpha filter can be used to return only alphabetic characters in the unicode “letter” category. All other characters are suppressed.

Supported Options for Alpha Filter

The following options are supported for Alpha:

Alpha([ boolean $allowWhiteSpace [, string $locale ]])

  • $allowWhiteSpace: If set to true then whitespace characters are allowed. Otherwise they are suppressed. Default is “false” (whitespace is not allowed).

    Methods for getting/setting the allowWhiteSpace option are also available: getAllowWhiteSpace() and setAllowWhiteSpace()

  • $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() and setLocale()

Alpha Filter Usage

1
2
3
4
5
6
7
8
9
// 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 "

Note

Alpha works on almost all 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 the Locale.

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 the Internationalization extension (Intl).

Supported Options for NumberFormat Filter

The following options are supported for NumberFormat:

NumberFormat([ string $locale [, int $style [, int $type ]]])

  • $locale: (Optional) Locale in which the number would be formatted (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() and setLocale()

  • $style: (Optional) Style of the formatting, one of the format style constants. If unset, it will use NumberFormatter::DEFAULT_STYLE as the default style.

    Methods for getting/setting the format style are also available: getStyle() and setStyle()

  • $type: (Optional) The formatting type to use. If unset, it will use NumberFormatter::TYPE_DOUBLE as the default type.

    Methods for getting/setting the format type are also available: getType() and setType()

NumberFormat Filter Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$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 the Internationalization extension (Intl).

Supported Options for NumberParse Filter

The following options are supported for NumberParse:

NumberParse([ string $locale [, int $style [, int $type ]]])

  • $locale: (Optional) Locale in which the number would be parsed (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() and setLocale()

  • $style: (Optional) Style of the parsing, one of the format style constants. If unset, it will use NumberFormatter::DEFAULT_STYLE as the default style.

    Methods for getting/setting the parse style are also available: getStyle() and setStyle()

  • $type: (Optional) The parsing type to use. If unset, it will use NumberFormatter::TYPE_DOUBLE as the default type.

    Methods for getting/setting the parse type are also available: getType() and setType()

NumberParse Filter Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$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

Table Of Contents

Previous topic

I18n View Helpers

Next topic

I18n Validators

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to I18n Filters on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.