1

毎週最後に番号が付いたサッカーのページを取得しています。/ 1 / = 1週目、/ 2 /=2週目など。シーズンは36週間です。4週目が終了したばかりなので、5週目以降はURLがまだ存在しません。第5週のURLは来週有効になりますが、現在、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 に答える