marjovanlier/stringmanipulation

一个高效的字符串操作 PHP 库,专注于数据规范化、编码转换和验证。

v1.0.79 2024-03-11 07:02 UTC

README

目录

介绍

欢迎使用 StringManipulation 库,这是一个强大而高效的 PHP 工具包,旨在增强 PHP 项目中的字符串处理。凭借其用户友好的界面和面向性能的设计,该库是那些希望轻松执行复杂字符串操作的开发商的必备之选。

Packagist Version Packagist Downloads Packagist License PHP from Packagist Latest Stable PHPStan Enabled Phan Enabled Psalm Enabled codecov Qodana

特性

  • 搜索词:将字符串转换为适合数据库查询的搜索优化格式,移除不必要的字符,并针对搜索引擎算法进行优化。
  • 名称修复:通过正确处理前缀,将姓氏标准化,将每个姓氏部分的第一个字母大写,确保数据的一致性。
  • UTF-8 到 ANSI:将 UTF-8 编码的字符转换为它们的 ANSI 等效字符,以便与不支持 UTF-8 的系统兼容。
  • 去除重音符号:从字符串中去除重音符号和特殊字符以进行文本规范化,使其更容易进行搜索和比较。
  • 日期验证:确保日期字符串符合指定的格式,并检查逻辑一致性,例如月份中的正确天数。
  • 时间部分验证:验证日期字符串中的时间组件的准确性,确保小时、分钟和秒在有效范围内。

安装

使用以下命令通过 Composer 安装包

composer require marjovanlier/stringmanipulation

使用

有关每个功能的更详细示例,请参阅下面的相应部分。

use MarjovanLier\StringManipulation\StringManipulation;

$result = StringManipulation::searchWords('Hello_World');
echo $result; // Outputs: 'hello world'

许可证

本库采用 MIT 许可证。有关更多信息,请参阅许可证文件

详细示例

名称标准化

  • 大小写转换:轻松在大小写和标题大小写之间转换字符串,允许灵活的文本格式化和呈现。例如,将 'john doe' 转换为 'John Doe' 以进行正确的姓名呈现。
use MarjovanLier\StringManipulation\StringManipulation;

$fixedName = StringManipulation::nameFix('mcdonald');
echo $fixedName; // Outputs: 'McDonald'

UTF-8 到 ANSI 转换

use MarjovanLier\StringManipulation\StringManipulation;

$ansiString = StringManipulation::utf8Ansi('Äpfel');
echo $ansiString; // Outputs: 'Äpfel' in ANSI format

搜索词

此功能通过移除不必要的字符并针对搜索引擎算法进行优化来优化字符串以供数据库查询。

use MarjovanLier\StringManipulation\StringManipulation;

$result = StringManipulation::searchWords('Hello_World');
echo $result; // Outputs: 'hello world'

名称修复

通过正确处理前缀,将姓氏标准化,将每个姓氏部分的第一个字母大写。

use MarjovanLier\StringManipulation\StringManipulation;

$fixedName = StringManipulation::nameFix('de souza');
echo $fixedName; // Outputs: 'De Souza'

UTF-8 到 ANSI 转换

将 UTF-8 编码的字符转换为它们的 ANSI 等效字符,以便与不支持 UTF-8 的系统兼容。

use MarjovanLier\StringManipulation\StringManipulation;

$ansiString = StringManipulation::utf8Ansi('Über');
echo $ansiString; // Outputs: 'Uber' in ANSI format

去除重音符号

从字符串中去除重音符号和特殊字符以进行文本规范化,使其更容易进行搜索和比较。

use MarjovanLier\StringManipulation\StringManipulation;

$normalizedString = StringManipulation::removeAccents('Crème Brûlée');
echo $normalizedString; // Outputs: 'Creme Brulee'

日期验证

确保日期字符串符合指定的格式,并检查逻辑一致性,例如月份中的正确天数。

use MarjovanLier\StringManipulation\StringManipulation;

$isValidDate = StringManipulation::validateDate('2023-02-29');
echo $isValidDate ? 'Valid' : 'Invalid'; // Outputs: 'Invalid'

时间部分验证

验证日期字符串中的时间组件的准确性,确保小时、分钟和秒在有效范围内。

use MarjovanLier\StringManipulation\StringManipulation;

$isValidTime = StringManipulation::validateTime('25:61:00');
echo $isValidTime ? 'Valid' : 'Invalid'; // Outputs: 'Invalid'

高级使用

对于更复杂的字符串操作,请考虑使用函数链来实现独特的转换。例如,您可以先规范化字符串,然后应用搜索优化,最后标准化大小写,以获得一个全面的文本处理示例。

use MarjovanLier\StringManipulation\StringManipulation;

$originalString = 'Crème Brûlée';
$processedString = StringManipulation::nameFix(StringManipulation::utf8Ansi(StringManipulation::removeAccents($originalString)));
echo $processedString; // Outputs: 'Creme Brulee'

这种方法通过结合库的函数以满足您的特定需求,允许进行灵活且强大的字符串操作。

贡献

我们欢迎对 StringManipulation 库的贡献!如果您有兴趣帮忙,请按照以下步骤操作

  1. 从仓库分叉并创建您的功能分支。
  2. 确保您的更改符合我们的编码标准,并在适用的情况下包含测试。
  3. 提交一个包含您更改详细描述的拉取请求。

感谢您对我们库改进的兴趣!

测试

为确保字符串操作的可靠性和功能性,建议使用以下命令运行整个测试套件

./vendor/bin/phpunit

要运行特定的测试或测试套件,可以使用PHPUnit标志来过滤测试。例如,要运行特定文件中的测试

./vendor/bin/phpunit --filter testFileName

并且要运行与特定名称模式匹配的测试

./vendor/bin/phpunit --filter '/::testNamePattern$/'

系统要求

  • PHP 8.2或更高版本。

支持

有关支持,请在我们的GitHub仓库上提交一个问题。