akademiano/php-unstructured-text-parser

一个PHP类,用于帮助从非结构化、难以处理的文档中提取文本

dev-master 2017-11-16 18:56 UTC

This package is auto-updated.

Last update: 2024-09-07 15:17:59 UTC


README

License

关于此类的信息

这是一个PHP类,用于帮助从非结构化、难以处理的文档中提取文本。当你想要解析生成表单的电子邮件中的文本时,你可以创建一个与预期接收到的邮件格式匹配的模板,同时指定变量文本元素,并将剩余部分留给类从接收到的电子邮件正文文本中提取预格式化的变量。

当您想要从以下内容解析数据时非常有用

  • 由网络表单生成的电子邮件
  • 具有可定义模板/表达式的文档

当前版本

1.2.0

安装

1- 使用 composer 简单运行以下命令

$ composer require aymanrb/php-unstructured-text-parser

####2- 将此存储库中的文件克隆/复制到您的本地libs目录

$ git clone https://github.com/aymanrb/php-unstructured-text-parser.git

使用示例

<?php
include_once __DIR__ . '/../vendor/autoload.php';

$parser = new aymanrb\UnstructuredTextParser\TextParser('/path/to/templatesDirectory');

$textToParse = 'Text to be parsed fetched from a file, mail, web service, or even added directly to the a string variable like this';

print_r($parser->parseText($textToParse)); //performs brute force parsing against all available templates

print_r($parser->parseText($textToParse, true)); //slower, performs a similarity check on available templates before parsing

解析过程

1- 获取您想要解析的文本的单个副本。

2- 将其中的每个变量文本替换为名为 {%VariableName%} 的命名变量

3- 将模板文件添加到模板目录(在解析代码中定义)中,扩展名为txt fileName.txt

4- 将您希望解析的文本传递给类的parse方法,并让它为您完成魔法。

模板示例

如果您想要解析的文本文档看起来像这样

Hi GitHub-er,
If you wish to parse message coming from a website that states info like:
Name: Pet Cat
E-Mail: email@example.com
Comment: Some text goes here

Thank You,
Best Regards
Admin

那么您的模板文件(example_template.txt)应该是

Hi {%name_of_receiver%},
If you wish to parse message coming from a website that states info like:
Name: {%sender_name%}
E-Mail: {%sender_email%}
Comment: {%comment%}

Thank You,
Best Regards
Admin

成功解析作业的输出将是

Array(
	'name_of_receiver' => 'GitHub-er',
    'sender_name' => 'Pet Cat',
    'sender_email' => 'email@example.com',
    'Comment' => 'Some text goes here'
)