File: /python/moda/public_html/tech/old/vendor/zbateson/mb-wrapper/README.md
# zbateson/mb-wrapper
Charset conversion and string manipulation wrapper with a large defined set of aliases.
[](https://travis-ci.org/zbateson/mb-wrapper)
[](https://scrutinizer-ci.com/g/zbateson/mb-wrapper/?branch=master)
[](https://scrutinizer-ci.com/g/zbateson/mb-wrapper/?branch=master)
[](https://packagist.org/packages/zbateson/mb-wrapper)
[](https://packagist.org/packages/zbateson/mb-wrapper)
The goals of this project are to be:
* Well written
* Tested where possible
* Support as wide a range of charset aliases as possible
To include it for use in your project, please install via composer:
```
composer require zbateson/mb-wrapper
```
## Requirements
mb-wrapper requires PHP 5.4 or newer. Tested on PHP 5.4, 5.5, 5.6, 7, 7.1, 7.2 and 7.3 on travis.
Please note: hhvm support has been dropped as it no longer supports 'php' as of version 4. Previous versions of hhvm may still work, but are no longer supported.
## Description
MbWrapper is intended for use wherever mb_* or iconv_* is used. It scans supported charsets returned by mb_list_encodings(), and prefers mb_* functions, but will fallback to iconv if a charset isn't supported.
A list of aliased charsets is maintained for both mb_* and iconv, where a supported charset exists for an alias. This is useful for mail and http parsing as other systems may report encodings not recognized by mb_* or iconv.
Charset lookup is done by removing non-alphanumeric characters as well, so UTF8 will always be matched to UTF-8, etc...
## Usage
The following wrapper methods are exposed:
* mb_convert_encoding, iconv with MbWrapper::convert
* mb_substr, iconv_substr with MbWrapper::getSubstr
* mb_strlen, iconv_strlen with MbWrapper::getLength
* mb_check_encoding, iconv (for verification) with MbWrapper::checkEncoding
```php
$mbWrapper = new \ZBateson\MbWrapper\MbWrapper();
$fromCharset = 'ISO-8859-1';
$toCharset = 'UTF-8';
$mbWrapper->convert('data', $fromCharset, $toCharset);
$mbWrapper->getLength('data', 'UTF-8');
$mbWrapper->substr('data', 'UTF-8', 1, 2);
if ($mbWrapper->checkEncoding('data', 'UTF-8')) {
echo 'Compatible';
}
```
## License
BSD licensed - please see [license agreement](https://github.com/zbateson/mb-wrapper/blob/master/LICENSE).