1

我正在使用PHP Simple HTML DOM Parser * [Manual]从网站获取数据。

现在我想做的是从获取的内容span中删除前三个单词。class="yeah"所以我已经实现了这段代码,但它有一个问题:

foreach($html->find('span.yeah') as $xdat)
{
    $x_des = implode(' ', array_slice(explode(' ', strip_tags($xdat)), 0, 3));
    $result = str_replace($x_des, ' ', $result);
    $result = str_get_html($result);
}

虽然它删除了前三个单词,<span class="yeah">但问题是,这会修改完整获取的内容。但我只想修改那些数据,<span class="yeah">但它与所有获取的数据中的前三个单词匹配,然后删除所有这些数据,尽管我只想从那些跨度类型中删除这些数据。

假设获取的数据是:

Some first three words content <span class="yeah">first three words some content some content</span> continue to some content

所以,输出应该是:

Some first three words content <span class="yeah"> some content some content</span> continue to some content

在这里,“前三个单词”是该跨度类型的前 3 个单词,因此我只需要将其从跨度类型中删除,而不是从完整内容中删除。

那么,如何从所有<span class="yeah"> </span>获取的内容中只删除前三个单词呢?

4

1 回答 1

0
foreach($html->find('span.yeah') as $xdat)
{
    $result = strip_tags($xdat);
    $result = str_get_html($result);
}

它将去除所有 html 标签和属性,尽管包括spanclass="yeah".

于 2012-11-04T06:32:21.147 回答