我有一些html简单dom的问题,不知道如何获取一些特定的数据,我阅读手册并尝试自己,但它看起来我想念的东西,所以希望有人可以帮助我。
第1个问题:
HTML:
<div>
<h4>Režie:</h4>
<span data-truncate="60">
<a href="/tvurce/3074-ridley-scott/">Ridley Scott</a>
</span>
</div>
<div>
<h4>Scénář:</h4>
<span data-truncate="60">
<a href="/tvurce/50383-william-monahan/">William Monahan</a>
</span>
</div>
<div>
<h4>Kamera:</h4>
<span data-truncate="60">
<a href="/tvurce/66939-john-mathieson/">John Mathieson</a>
</span>
</div>
<div>
<h4>Hudba:</h4>
<span data-truncate="60">
<a href="/tvurce/62400-harry-gregson-williams/">Harry Gregson-Williams</a>
</span>
</div>
我的PHP代码:
$ret = $html->find('span[data-truncate*="60"]'); //rezia
foreach ($ret as $rezia) {
echo "rezia <br/>";
}
但是这段代码只打印了所有这个名字的名称和href,我需要的只是“REŽIE”(Ridley Scott)和“Scénář”(William Monahan)下的名字
第二个问题 HTML:<div id="rating">
<h2 class="average">71%</h2>
<p class="charts">
PHP代码:
$percenta = $html->find('h2[class*="average"]'); //pocet ˇ%
foreach ($percenta as $hodnotenie) {
echo "$hodnotenie";
}
我得到的是71%,我只想要数字,而不是那个HTML,是否可能?
第3个问题(最后一个:P):
HTML:
<table>
<tr>
<th>
V kinech ČR
od:
</th>
<td class="date">
06.05.2005
</td>
</tr>
<tr>
<th>
V kinech SR
od:
</th>
<td class="date">
05.05.2005
</td>
</tr>
<tr class="separator">
<th>
Na DVD
od:
</th>
<td class="date">
01.10.2005 Bonton
</td>
</tr>
PHP代码:
$ret = $html->find('td[class="date"]');
$kino = array();
foreach ($ret as $kino) {
$datum[] = $datum->innertext;
}
echo "$datum[0]";
我没有输出这个,我不知道我的代码有什么问题。我只想得到那个日期(所以应该是06.05.2005,05.05.2005,01.10.2005)
答案 0 :(得分:3)
你没有加载html,看看这个
$html = str_get_html('Some text bla bla bla bla<br /><b>Date</b>: 2012-12-13<br /><br /><b>Name</b>: Peter Novak<br /><b>Hobby</b>: books,cinema,facebook');
foreach($html->find('text') as $t){
if(substr($t, 0, 1)==':')
{
// do whatever you want
echo substr($t, 1).'<br />';
}
}
输出
2012-12-13
Peter Novak
books,cinema,facebook
另外,请检查此内容以加载远程站点的内容
$html = file_get_html('http://heera.it');
// Find all article blocks
foreach($html->find('div.post-entry') as $article) {
echo $article->find('div.post-entry-content h2 a', 0) . '<br />';
echo $article->find('div.post-entry-content p', 0)->plaintext. '<br />';
echo "<hr />";
}
结果将是