修改所有span类的Fetched Data

时间:2012-11-04 05:07:53

标签: php parsing dom

我正在使用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">中的数据,但它匹配所有获取数据中的前三个单词,然后删除所有这些数据,但我想只从那些跨度类型中删除这些数据。

Asumming获取的数据是:

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类型中删除,而不是从完整内容中删除。

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

1 个答案:

答案 0 :(得分:0)

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

它会删除所有html标记和属性,但包括spanclass="yeah"