2013-10-09 31 views
2

我正在开发一个项目,我需要从HTML类获取所有数据。PHP从HTML类获取文本

<div class="sprofile"> 
    <a href="http://www.cibap.nl/profile/2127/"><b>Jeroen Rinzema</b></a> 
    <br /> 
    <i>Reclame en Media</i> 
    <br /> 
    Klas RMM21C 
    <div class="istatus offline"> 
    Offline 
    </div>     
</div> 

这是我需要从HTML页面获得的HTML。但我不知道如何在PHP中选择这部分HTML文档。我需要使用的部分是: 的Jeroen Rinzema克拉斯RMM21C

如果你想看到完整的HTML文档,你可以做到这一点here

我迄今为止尝试是:

$url = "http://www.cibap.nl/profile/$username"; 
$html = file_get_html($url); 
foreach($html->find('div.sprofile') as $article){ 
    $item['name'] = $article->find('div.sprofile a b', 0)->plaintext; 
    $item['klas'] = $article->find('div.sprofile', 0)->plaintext; 
} 
echo'done'; 
+3

使用DOM解析器。 –

+0

但我也可以选择类似(sprofile)的DOM解析器? – Ajeo

+0

你可以通过jQuery发送这部分到一个PHP文件我认为这两个文件必须在同一个域) –

回答

0

是否希望将html内容发送到php页面?为此,您可以将隐藏的表单元素中的内容包装在POST中并进行POST。

如果您希望在本页面上提取html内容,请使用javascript dom操作。你也可以通过这个链接http://stackoverflow.com/questions/3808808/how-to-get-element-by-class-in-javascript

1

使用Symfony DomCrawler ComponentCssSelector Component。它提供了一种非常自然的语法,并允许您根据类选择元素。

如果不是PHP的要求,我可以建议使用nodejs(带或不带jQuery)?

+0

最好的将是PHP,但如果jQuery的唯一选择是。这是没有问题的 – Ajeo

+0

Symfony的东西是你选择文本本身,但在我的情况是文本总是不同的,所以我不知道什么是站在HTML文件 – Ajeo

+0

@MeQube你在你的例子中使用CSS类可以匹配与CssSelector组件。如果您要解析的DOM总是不同的,那么您无法自动获得所需的输出。 – nietonfir