1

我得到一个足球页面,每周的末尾都有一个数字。/1/ = 第 1 周,/2/ = 第 2 周,依此类推。本赛季有 36 周。第 4 周刚刚结束,因此第 5 周及以后的 URL 不存在。第 5 周的网址将在下周有效,但现在,它给了我 404 错误。

我使用以下代码检查周(页面 URL)是否存在。

$url = 'http://fantasy.mlssoccer.com/entry/13191/event-history/4/';
$html = @file_get_html($url);

if($html==FALSE)
{
    echo 'error';
    //and do nothing
}
else
{
    echo 'success';
    //and do some stuff here
}

我正在寻找一个简单的数字,其中最新的一周。在这种情况下,它应该是 4,但下周应该是 5。

最好或最快的方法是什么?如果可能的话,我不希望我的页面花费很长时间来检查这个。

4

2 回答 2

1

假设 URL 结构不变,这样的事情应该会起作用。

$base = "http://fantasy.mlssoccer.com/entry/13191/event-history/";
for($n = 1; $n <= 36; ++$n) {
    if( file_get_html($base. (string) $n) == false ) {
        // if file_get_html returns false, then the most recent week is n - 1 (the week before)
        $most_recent_week = (int) $n - 1;
        break; 
    }
}
于 2013-03-26T03:30:37.043 回答
1

也许使用以下内容会更合适。

$weekNumber = date("W") - offset;

其中 offset 用于从日历年的开始抵消季节的开始。

这会将您的 URL 行修改为:

$url = 'http://fantasy.mlssoccer.com/entry/13191/event-history/' . $weekNumber . '/'
于 2013-03-26T03:32:38.113 回答