Php Foreach explode trim take last date简单dom解析器

Php Foreach explode trim take last date简单dom解析器,php,arrays,dom,simpledom,Php,Arrays,Dom,Simpledom,我只想从文本div开始计算第三个div的最后一个日期,下面使用foreach是我的代码 它只显示了1970年1月1日的日期。我无法获取日期并将其与今天的日期进行比较 ------------- 我想爬虫页面的一部分 <div class="courses_list"> <article class="course" data-id="4376" data-datepairs="20150718-20150

我只想从文本div开始计算第三个div的最后一个日期,下面使用foreach是我的代码

它只显示了1970年1月1日的日期。我无法获取日期并将其与今天的日期进行比较 ------------- 我想爬虫页面的一部分

<div class="courses_list">

                                    <article class="course" data-id="4376" data-datepairs="20150718-20150809" data-terms="8">
                                                    <div class="img">
                            <a href="http://ickosovo.com/?course=network-security-pentesting-2"><img src="http://ickosovo.com/wp-content/uploads/2015/07/network-a4-90x60.jpg"></a>
                        </div>

                        <div class="text">
                            <h3><a href="http://ickosovo.com/?course=network-security-pentesting-2">NETWORK SECURITY &amp; PENTESTING</a></h3>
                            <div class="excerpt"><p>In the last decade, wireless networks gained a substantial momentum. One of the most beneficial features of wireless networks is […]</p>

                                <div class="applied date_applied">
                                18 July 2015 

                                                                        -
                                    09 August 2015                                                                      </div>

                                <div class="applied date_applied">
                                    ICT Courses                                 </div>

                            </div>
                        </div>
                    </article>
                                            <article class="course" data-id="4378" data-datepairs="20150727-20150826" data-terms="38">
                                                    <div class="img">
                            <a href="http://ickosovo.com/?course=autocad-autocad-lt-2015-fundamentals-7"><img src="http://ickosovo.com/wp-content/uploads/2015/07/AutoCAD-2015-poster-90x60.png"></a>
                        </div>

                        <div class="text">
                            <h3><a href="http://ickosovo.com/?course=autocad-autocad-lt-2015-fundamentals-7">AUTOCAD / AUTOCAD LT 2015 FUNDAMENTALS</a></h3>
                            <div class="excerpt"><p>The AutoCAD / AutoCAD LT 2015 Fundamentals&nbsp;Training course is designed for new users of AutoCAD and for delegates who would […]</p>

                                <div class="applied date_applied">
                                27 July 2015 

                                                                        -
                                    26 August 2015                                                                      </div>

                                <div class="applied date_applied">
                                    Special Focus                                   </div>

                            </div>
                        </div>
                    </article>
                                            <article class="course" data-id="4439" data-datepairs="20150727-20150918" data-terms="8">
                                                    <div class="img">
                            <a href="http://ickosovo.com/?course=web-design-6"><img src="http://ickosovo.com/wp-content/uploads/2015/07/web-design_poster_july-2015-90x60.png"></a>
                        </div>

                        <div class="text">
                            <h3><a href="http://ickosovo.com/?course=web-design-6">WEB DESIGN</a></h3>
                            <div class="excerpt"><p>Many other training companies claim that creating a website is easy and can be done by anyone. While this may […]</p>

                                <div class="applied date_applied">
                                27 July 2015 

                                                                        -
                                    18 September 2015                                                                       </div>

                                <div class="applied date_applied">
                                    ICT Courses                                 </div>

                            </div>
                        </div>
                    </article>
                                            <article class="course" data-id="4441" data-datepairs="20150728-20150919" data-terms="8">
                                                    <div class="img">
                            <a href="http://ickosovo.com/?course=php5-web-application-3"><img src="http://ickosovo.com/wp-content/uploads/2015/07/php-poster_july-2015-90x60.png"></a>
                        </div>

                        <div class="text">
                            <h3><a href="http://ickosovo.com/?course=php5-web-application-3">PHP5 Web Application</a></h3>
                            <div class="excerpt"><p>Many other training companies claim that creating a Web application is easy and can be done by anyone. While this […]</p>

                                <div class="applied date_applied">
                                28 July 2015 

                                                                        -
                                    19 September 2015                                                                       </div>

                                <div class="applied date_applied">
                                    ICT Courses                                 </div>

                            </div>
                        </div>
                    </article>
                                </div>






include('simple_html_dom.php');

            $html1 = file_get_html($page1);
        $today = strtotime("today");
                $events_old     = array();
                $events_today   = array();
                $events_future  = array();
        foreach($html1->find('div.text h3') as $e) {

$link = $e->getElementsByTagName('a',0)->href;
            $date_array = explode("-", trim($e->next_sibling()->getElementsByTagName('applied.date_applied', 0)->plaintext));
            $originalDate = trim($date_array[1]);
            $dt = strtotime($originalDate);

     $c = array('title' => $e->plaintext, 'date' => date('d.m.Y', $dt), 'timestamp' => $dt, 'from' => 'ict', 'link' => $link);

                    if($today == $dt) {
                        array_push($events_today, $c);
                    } elseif($today > $dt) {
                        array_push($events_old, $c);
                    } else {
                        array_push($events_future, $c);
                    }

            }

在过去十年中,无线网络获得了巨大的发展势头。无线网络最有益的功能之一是[…]

2015年7月18日 - 2015年8月9日 信息和通信技术课程 AutoCAD/AutoCAD LT 2015基础知识培训课程是为AutoCAD的新用户以及愿意[…]学习的学员设计的

2015年7月27日 - 2015年8月26日 特别关注 许多其他培训公司声称,创建网站很容易,任何人都可以完成。而这可能[……]

2015年7月27日 - 2015年9月18日 信息和通信技术课程 许多其他培训公司声称,创建Web应用程序很容易,任何人都可以完成。而这[……]

2015年7月28日 - 2015年9月19日 信息和通信技术课程 包括('simple_html_dom.php'); $html1=file\u get\u html($page1); $today=标准时间(“今天”); $events_old=array(); $events_today=array(); $events_future=array(); foreach($html1->find('div.text h3')作为$e){ $link=$e->getElementsByTagName('a',0)->href; $date_array=explode(“-”,trim($e->next_sibling()->getElementsByTagName('applicated.date_applicated',0)->明文)); $originalDate=trim($date_数组[1]); $dt=标准时间($originalDate); $c=数组('title'=>$e->明文,'date'=>date('d.m.Y',$dt),'timestamp'=>$dt,'from'=>ict','link'=>$link); 如果($today=$dt){ 数组推送($events\u today,$c); }elseif($今日>$dt){ 数组推送($events\u old,$c); }否则{ 数组推送($events\u future,$c); } }
经过一些编辑,我们找到了需要解析的HTML标记的真正相关结构:

<h3><a >NETWORK SECURITY &amp; PENTESTING</a></h3>
<div class="excerpt"><p>In the last decade, wireless networks gained a substantial momentum. One of the most beneficial features of wireless networks is […]</p>
    <div class="applied date_applied">
       18 July 2015 
        -
       09 August 2015
    </div>
    <div class="applied date_applied">
        ICT Courses
    </div>
</div>
检查结果(现在全部转换为时间戳):


好吧,那么什么不起作用?你能解释一下到底是怎么回事吗?我没有得到日期,只是显示了日期01.01.1970我只发布了我想要日期的代码,因为我已经获取了文本和ahref链接,我只想把最后一个日期与今天的日期进行比较,但问题是我只得到了这个1970年1月1日的日期。请发布更多相关的HTML。例如,这里没有
。我看到您为
applied
调用了
getElementsByTagName()
,但这是
上的一个类,而不是标记。如果没有更多的HTML作为上下文,就很难做出结论性的回答。我编辑了它。问题是我不能得到第二个日期,而不是第一个。因此,我可以将今天的日期与即将到来的事件进行比较
foreach ($html1->find('div.text h3') as $e) {
  // get the two dates as an array
  // The second child node of the first sibling to the <h3>
  $date_array = explode('-' , trim($e->next_sibling()->children()[1]->plaintext)); $originalDate = trim($date_array[1]);

  // Trim and convert them to dates:
  foreach ($date_array as &$d) {
     $d = strtotime(trim($d));
  }
}
print_r($date_array);
Array
(
    [0] => 1437195600
    [1] => 1439096400
)
Array
(
    [0] => 1437973200
    [1] => 1440565200
)
Array
(
    [0] => 1437973200
    [1] => 1442552400
)
Array
(
    [0] => 1438059600
    [1] => 1442638800
)