如何在PHP Simple HTML DOM Parser中获取span类的前三个单词

时间:2012-11-02 10:46:03

标签: php parsing variables dom

使用PHP Simple HTML DOM Parser获取span类的前三个单词的方法是什么。
假设获取页面的源代码是:

Some Text <span class="sos"> Good Better Best <i> Some text</i> here</span> Again some text here

使用php简单的html dom解析器,我们可以像这样获取span类的所有内容:

$data = $html->find('span class="sos"');

所以在这里,$data将声明该span类的完整内容。
我想做的是在一个新变量中只得到一个span类的前三个单词,所以在这种情况下它应该是:

$new_data = 'Good Better Best';

怎么做?
PHP简单的HTML DOM解析器Manual

3 个答案:

答案 0 :(得分:1)

您可以尝试使用爆炸。

$data = $html->find('span class="sos"');
$breakdata = explode(" ",$data);
$firstThreeWords = array_slice($breakdata, 0, 3);

$final = implode(" ",$firstThreeWords); //Good Better Best

如果要排除前三个单词,

$data = $html->find('span class="sos"');
$breakdata = explode(" ",$data);
$removeFirstThreeWords = array_slice($breakdata, 2);

$final = implode(" ",$removeFirstThreeWords ); //Some text here

答案 1 :(得分:1)

与上述答案类似,但使用strip_tags预先从字符串中删除HTML。

$output = implode(' ', array_slice(explode(' ', strip_tags($data)), 0, 3));

答案 2 :(得分:1)

正如你评论@billyonecan帖子,听起来像你的解决方案是:

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

根据您的需要更改所有变量。