zbateson / mb-wrapper
mbstring包装器,在编码转换和字符串操作中提供iconv回退
2.0.0
2024-03-20 01:38 UTC
Requires
- php: >=8.0
- symfony/polyfill-iconv: ^1.9
- symfony/polyfill-mbstring: ^1.9
Requires (Dev)
Suggests
- ext-iconv: For best support/performance
- ext-mbstring: For best support/performance
This package is auto-updated.
Last update: 2024-08-29 22:16:01 UTC
README
具有大量定义别名集的字符集转换和字符串操作包装器。
本项目目标包括
- 编写良好
- 尽可能进行测试
- 尽可能支持广泛的字符集别名
要将其用于项目,请通过composer安装
composer require zbateson/mb-wrapper
PHP 7支持已删除
从mb-wrapper 2.0版本开始,已停止对PHP 7的支持。
要求
mb-wrapper需要PHP 8.0或更高版本。在GitHub Actions上对PHP 8.0、8.1、8.2和8.3进行了测试。
2.0版新增功能
如果iconv转换或对字符串的操作失败,现在将抛出UnsupportedCharsetException异常。
描述
MbWrapper旨在在需要使用mb_*或iconv_*的地方使用。它扫描由mb_list_encodings()返回的支持的字符集,并优先使用mb_*函数,但如果不支持该字符集,则回退到iconv。
为mb_*和iconv维护了一个别名字符集列表,其中对于每个别名都存在支持字符集。这对于邮件和http解析很有用,因为其他系统可能报告mb_*或iconv无法识别的编码。
字符集查找还会删除非字母数字字符,因此UTF8将始终匹配UTF-8等...
使用方法
以下包装方法被公开
- mb_convert_encoding,使用MbWrapper::convert的iconv
- mb_substr,使用MbWrapper::getSubstr的iconv_substr
- mb_strlen,使用MbWrapper::getLength的iconv_strlen
- mb_check_encoding,使用MbWrapper::checkEncoding的iconv(用于验证)
$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'; }
许可
BSD许可 - 请参阅许可协议。