我如何使用curl检查网站上的350页?

时间:2014-01-06 16:18:31

标签: php curl

我正在尝试在此场景网站上挑选一些数字:http://www.ds-scene.net/?s=releases&p=1

我想输入一个数字并获得相应的名称。我使用以下代码:

<?php
    function curlOpen($url){
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
        curl_setopt($curl, CURLOPT_USERAGENT, 'Firefox/3.0.5');
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
        curl_setopt($curl, CURLOPT_MAXREDIRS, 1);
        curl_setopt($curl, CURLOPT_HEADER, 1);
        $page = curl_exec($curl);
        curl_close($curl);
        return $page;
        //\
    }

    $pageNum = $_GET['pageNum'];

    if(empty($pageNum)) { 
    $dsScene = curlOpen("http://www.ds-scene.net/?s=releases");
    } else {
    $dsScene = curlOpen("http://www.ds-scene.net/?s=releases&p=$pageNum");
    }
    $pattern = '#title="(.*?)"><b>(.*?)</b></a><br /><span class=\'smallTxt\'>#';
    preg_match_all($pattern,$dsScene,$match);


    $pattern = '#<td class="romlistpad"><div align="center" class="romlistTxt"><b>([0-9]{4})</b>#';
    preg_match_all($pattern,$dsScene,$match_number);

    if(in_array('5915', $match_number[1])) {
    $key = array_search('5915', $match_number[1]);
    echo "$key Found It on page: $pageNum - Corresponding name is ".$match[2][$key];
    } else {
        $pageNum++;
        header('Location: auto-add.php?pageNum='.$pageNum.'');
    }

    ?>

然而,由于该网站上有超过350个页面,如果我输入第50页以上的数字,浏览器就会结束说重定向循环。

有更好/更快的方法吗?

由于

1 个答案:

答案 0 :(得分:0)

使用URI确定页面请求,在.htaccess RewriteRule ^(.*)$ auto-add.php?/$1 [L]中设置,然后使用以下内容:

$uri = explode($_SERVER['REQUEST_URI']);
$pagenum = end($uri);

..

$pageNum++;
header('Location: /'.$pageNum);

这意味着您必须允许您的网络服务器使用.htaccess