0

我正在使用来自http://simplehtmldom.sourceforge.net/的 HTML DOM Parser

然后我遇到了无法从源链接中的倒计时 JavaScript 获取文本的问题。

源代码:(这是Countdown JavaScript)

<div class="timeSection" align="right" style="width:285px;margin:132px 0 0 -50px;position:absolute;">
<div style="width:285px; height:58px;"></div>

<div id="countdown_575" style="padding-left:50px;" class="hasCountdown"><table cellspacing="5" cellpadding="0" width="230" style="" border="0"><tbody><tr><td width="75" align="center">111</td><td width="40" align="center">50</td><td width="70" align="center">49</td></tr></tbody></table></div> 
<script type="text/javascript">                         
                                jQuery('#countdown_575').countdown({until: +402717 , compact: true,timeSeparator: '',expiryText:'Expired',format:'HMS',expiryUrl:'http://www.ensogo.com.ph/manila/',layout:'<table cellspacing="5" cellpadding="0" width="230" style="" border = "0">' +
                                    '<tr><td width="75" align="center">{hnn}</td><td width="40" align="center">{mnn}</td><td width="70" align="center">{snn}</td></tr></table>'});                              
</script>                           
</div>

我的代码:

foreach($ColumnHTML->find('.timeSection') as $getTime)
{
    $Temp_Time = $getTime->innertext;

    $TimeCode = str_get_html($Temp_Time);

    foreach($TimeCode->find('td[width=75]') as $getHour)
    {
        $Hour = $getHour->plaintext;
    }

    foreach($TimeCode->find('td[width=40]') as $getMinute)
    {
        $Minute = $getMinute->plaintext;
    }

    foreach($TimeCode->find('td[width=70]') as $getSecond)
    {
        $Second = $getSecond->plaintext;
    }

    echo $Hour.":".$Minute.":".$Second . "<br/>";
}

然后输出:(带冒号的空格)

::
4

2 回答 2

0

这是行不通的,因为这些值是通过 JavaScript 在客户端动态插入到 DOM 中的。如果您想在服务器上捕获这些值,您可以使用表单提交它们。

于 2011-05-02T08:56:06.997 回答
0

当您通过 php 解析 html 时,不会执行 javascript,这就是您没有得到结果的原因。你试图做到这一点是不可能的。一种简单的方法是在您的 javascript 中使用 ajax 来存储您的计数器(可能在会话中或在数据库表中)。

于 2011-05-02T09:05:51.090 回答