0

我正在使用以下内容来检查页面是否存在。

for($i = 620; $i <= 630; $i++) 
{
    $url = 'http://fantasy.mlssoccer.com/web/api/elements/'.$i.'/';
    $headers = @get_headers($url);  
    echo $headers[0].'<br>';
}

有时这给 10HTTP/1.1 200 OK和其他时候最后 5 是HTTP/1.1 500 Internal Server Error

有没有办法解决?如果你访问 625 之后的页面并刷新,你会得到一个页面说500 Internal Server Error nginx,或者有时你会得到一个以 . 开头的页面Piston/0.2.2 (Django 1.4.4) crash report:

知道如何检查发生这种情况时是否存在(有效的非崩溃)页面吗?

4

1 回答 1

2

将各种人所说的总结成一个独立的 php 脚本(这可以从命令行工作 - 我相信你可以让它在网页中工作):

<?php
for($i = 620; $i <= 630; $i++)
{
    $url = 'http://fantasy.mlssoccer.com/web/api/elements/'.$i.'/';
    $headers = @get_headers($url);
    $match = preg_grep("/200 OK/", $headers);
    if (strlen($match[0]) == 0) {
      echo "page ".$i." does not exist!\n";
    }
    else {
      echo "page ".$i." exists!\n";
    }
}
?>

这产生了以下输出:

floris$ php valid.php 
page 620 exists!
page 621 exists!
page 622 exists!
page 623 exists!
page 624 exists!
page 625 does not exist!
page 626 does not exist!
page 627 does not exist!
page 628 does not exist!
page 629 does not exist!
page 630 does not exist!
于 2013-03-09T05:31:27.303 回答