mirror of
https://github.com/itflow-org/itflow
synced 2026-09-12 17:55:11 +00:00
58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
# zbateson/mb-wrapper
|
|
|
|
Charset conversion and string manipulation wrapper with a large defined set of aliases.
|
|
|
|
[](https://github.com/zbateson/mb-wrapper/actions/workflows/tests.yml)
|
|
[](https://packagist.org/packages/zbateson/mb-wrapper)
|
|
[](https://packagist.org/packages/zbateson/mb-wrapper)
|
|
|
|
```
|
|
composer require zbateson/mb-wrapper
|
|
```
|
|
|
|
## Sponsors
|
|
|
|
[](https://secumailer.com)
|
|
|
|
A huge thank you to [all my sponsors](https://github.com/sponsors/zbateson). <3
|
|
|
|
If this project's helped you, please consider [sponsoring me](https://github.com/sponsors/zbateson).
|
|
|
|
## Requirements
|
|
|
|
PHP 8.1 or newer. Tested on PHP 8.1, 8.2, 8.3, 8.4, and 8.5.
|
|
|
|
## 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 by the `mb_*` functions.
|
|
|
|
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).
|