Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每页的php分页结果限制_Php_Search - Fatal编程技术网

每页的php分页结果限制

每页的php分页结果限制,php,search,Php,Search,使用简单的Dom解析器,我得到了50个以上的结果,现在我只想要每页10个结果。我的search.php页面有以下代码 <?php include('simple_html_dom.php'); $search = $_GET['search']; $html = file_get_html('http://mysite/'.$search.'.html'); foreach ( $html->find('div#song_html ') as $e ) { $title

使用简单的Dom解析器,我得到了50个以上的结果,现在我只想要每页10个结果。我的search.php页面有以下代码

<?php 
 include('simple_html_dom.php');
 $search = $_GET['search']; 
 $html = file_get_html('http://mysite/'.$search.'.html');

foreach ( $html->find('div#song_html ') as $e ) {

$title= $e->find('div', 2)->plaintext;

 echo $title.'<br>'; 
}
?>
我希望每页10个结果,比如&startrow=1表示前10个结果&startrow=2表示第二个10个结果

 http://domain/search.php?search=Keyword&startrow=1 //page 1 with 10 result
 http://domain/search.php?search=Keyword&startrow=2 //page 2 with Next 10 result
 http://domain/search.php?search=Keyword&startrow=3 //page 3 with Next 10 result

您可以对DOM解析器的结果使用
array\u slice()。。。类似于以下代码的代码可以实现此目的(未经测试的代码):



很抱歉,您需要一个PHP Dom解析器。这是错误的,将结果分页是正确的。简单地输入一个整数变量,然后乘以该变量的限制。该变量将是您的“页码”。当有人输入一个高得离谱的
startrow
 http://domain/search.php?search=Keyword&startrow=1 //page 1 with 10 result
 http://domain/search.php?search=Keyword&startrow=2 //page 2 with Next 10 result
 http://domain/search.php?search=Keyword&startrow=3 //page 3 with Next 10 result
<?php 

include('simple_html_dom.php');
$page = array_key_exists('startrow', $_GET) ? (int)$_GET['startrow'] : 1;
$search = $_GET['search']; 
$html = file_get_html('http://mysite/'.$search.'.html');

$songs = $html->find('div#song_html ');
$paginationStart = min((10 * ((int)$page - 1)), (count($songs)-1));

$results = array_slice($songs, $paginationStart, 10);
foreach ( $results as $e ) {
    $title= $e->find('div', 2)->plaintext;
    echo $title.'<br>'; 
}

?>