首页 > 解决方案 > 从文本中提取规范列表(未知格式)

问题描述

如何从格式未知的产品描述中提取规范(有时是无序列表,有时是 br 元素等),但它在前面看起来总是一样的。

视觉是这样的:

一些描述文字,有时是一个句子,有时更多..

== 有时这里是空行,有时不是 ==

  • 规格项目1
  • 规格项目2

有没有办法在PHP中提取“通过它的视觉”?

例子:

<h2> desc <br>
<br>
&gt; <strong> T Shirt</strong><br>
&gt; Breathable mesh fabric<br>
&gt; Reflective detail<br>
&gt; Flat lock seams <br>

标签: phptextinformation-extraction

解决方案


您可以尝试过滤您的条目。我已经设法将您的示例放入数组中。这将是一个与结果有点争论的情况:

<?php

$html =<<<HTML
<h2> desc </h2>
<br>
&gt; <strong> T Shirt</strong><br>
&gt; Breathable mesh fabric<br>
&gt; Reflective detail<br>
&gt; Flat lock seams <br>
HTML;

$no_html       = strip_tags($html);
$no_entities   = preg_replace('/&#?[a-z0-9]+;/i', '', $no_html);
$parts         = preg_split('/\R/', $no_entities);
$trimmed_parts = array_map('trim', $parts);
var_export($trimmed_parts);

输出:

array (
    0 => 'desc',
    1 => '',
    2 => 'T Shirt',
    3 => 'Breathable mesh fabric',
    4 => 'Reflective detail',
    5 => 'Flat lock seams',
)

推荐阅读