dynoser / pricefinder
搜索字符串中类似于价格的价值,并返回这些值的数组
dev-main
2023-12-07 13:33 UTC
Requires
- php: >=5.6
This package is auto-updated.
Last update: 2024-09-07 15:07:48 UTC
README
概述
PriceFinder
是一个PHP类,用于检测和分析文本字符串中的价格信息。它特别适用于处理多货币数据,支持广泛的全球货币和加密货币。
功能
- 货币支持: 该类可以识别和操作各种货币,包括主要货币如美元(USD)、欧元(EUR)和英镑(GBP),以及流行的加密货币如比特币(BTC)、以太坊(ETH)和狗狗币(DOGE)。
- 灵活的文本分析: 它可以在文本字符串中找到价格,即使它们以不同的格式呈现或被不同类型的文本包围。
- 可自定义的前缀和后缀: 用户可以定义自己的前缀和后缀来检测价格,除了提供的默认值。
- 多语言支持: 该类可以识别多种语言中的价格前缀,提高了其在国际环境中的可用性。
工作原理
- 初始化: 构造函数初始化货币代码和符号,以及用于价格检测的默认和可自定义的前缀和后缀。
- 价格检测:
findPrices
方法扫描给定的文本字符串中的价格相关模式,包括货币符号和数值。 - 货币识别: 通过分析文本中使用的货币前缀、后缀和实际符号来确定货币。
- 结果汇总: 方法返回一个包含详细信息的检测到的价格数组,如完整匹配的字符串、数值和识别的货币。
使用示例
$priceFinder = new dynoser\textworks\PriceFinder(); $pricesArr = $priceFinder->findPrices("The price is $100 or €85.33, or 8,000 рублей"); print_r($pricesArr); // This will return an array with details of the detected prices in USD and EUR: Array ( [0] => Array ( [full_match] => $100 or [digits] => 100 [currency] => USD [match_position] => 13 ) [1] => Array ( [full_match] => €85.33 [digits] => 85.33 [currency] => EUR [match_position] => 21 ) [2] => Array ( [full_match] => 8,000 рублей [digits] => 8000 [currency] => RUB [match_position] => 33 ) )
定制
- 添加自定义前缀/后缀: 用户可以通过将它们作为数组传递给构造函数或使用
setPrefixes
和setSuffixes
方法来添加自己的前缀或后缀。 - 支持更多货币: 可以通过更新
$currenciesArr
数组来扩展类以支持更多货币。
限制
- 语言依赖性: 虽然该类支持多种语言,但在特定语言环境中可能需要定制以实现最佳性能。
- 复杂格式: 非常复杂或不规则的货币格式可能无法准确检测。
结论
PriceFinder
类是一个检测和分析文本中价格的通用工具,支持广泛的货币和语言。它高度可定制,适用于需要从文本中提取价格数据的各种应用。