我有html页面我试图阅读(使用htmlsql.class.php,但由于它太旧和过时,我必须使用phpQuery)。
html标记是:
<ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3">
<li>
<div data-widget-type="epg.tvGuide.channel" data-view="epg.tvGuide.channel" id="widget-765574917197" class=" widget-epg_tvGuide_channel">
<div class="group-box">
<div class="group-header l-center" data-action="togglePreviousBroadcasts">
<span class="header-text">
<img src="logo.png" style="height: 40px" />
</span>
</div>
<div>
<div class="tvGuide-item is-past">
<span data-action="toggleEventMeta">
06:15 what a day
</span>
<div class="tvGuide-item-meta">
Some text.
<div><a href="/little_charmers?uniqueId=0082201701250415">Näita rohkem</a></div>
</div>
</div>
<div class="tvGuide-item is-current">
<span data-action="toggleEventMeta">
06:15 what a day
</span>
<div class="tvGuide-item-meta">
Some text.
<div><a href="/little_charmers?uniqueId=0082201701250415">Näita rohkem</a></div>
</div>
</div>
<div class="tvGuide-item">
<span data-action="toggleEventMeta">
06:15 what a day
</span>
<div class="tvGuide-item-meta">
Some text.
<div><a href="/little_charmers?uniqueId=0082201701250415">Näita rohkem</a></div>
</div>
</div>
</div>
</div>
然后有了普遍的事情,这很容易:
$wsql->select('li');
if (!$wsql->query('SELECT * FROM span')){
print "Query error: " . $wsql->error;
exit;
}
foreach($wsql->fetch_array() as $row){
但我无法阅读课程,因此我需要知道课程何时是最新的,何时不是。
作为phpQuery的新手,然后很难找到reallife的例子。 有人能指出我正确的方向。
我想拥有&#34; span&#34;文本和项目元素,所以我想知道什么时候div类是&#34; is-past&#34;或者&#34;是当前的&#34;
答案 0 :(得分:0)
你可以在这里找到关于phpQuery的信息:https://code.google.com/archive/p/phpquery/
我更喜欢&#34; one-file&#34;下载中的版本: https://code.google.com/archive/p/phpquery/downloads
基于代码的简单示例:
// for loading files use phpQuery::newDocumentFileHTML();
// for plain strings use phpQuery::newDocument();
$document = phpQuery::newDocumentFileHTML('http://domain.com/yourFile.html');
$items = pq($document)->find('.tvGuide-item');
foreach($items as $item) {
if(pq($item)->hasClass('is-past') === true) {
// matching past items
}
if(pq($item)->hasClass('is-current') === true) {
// matching current items
}
// examples for finding elements and grabbing text/attributes
$span = pq($item)->find('span');
$text_in_span = pq($span)->text();
$meta = pq($item)->find('.tvGuide-item-meta');
$link_in_meta = pq($meta)->find('a');
$href_of_link_in_meta = pq($link_in_meta)->attr('href');
}