0

我正在处理一个网站的分页,我到了需要突出显示页面编号的地步。

我在下面这行的语义上遇到了困难,更具体地说,**. 整个代码也在下面。

请注意,** 不是代码的一部分。

谁能帮忙把这条线放在一起。

    <? $saida .='<li><a'.**if $i == $_GET['page'] echo 'class="active"';**.'href="?page='.$i.'">'.$i.'</a></li>'; ?>

这是我的整个代码

<?php

function montaTexto($texto){
    $texto = str_replace("<hr>","<hr />",$texto);
    $texto = str_replace("<hr/>","<hr />",$texto);
    $texto = explode('<hr />',$texto);

    $x = 0;
    foreach($texto as $s =>$v){
        $x++;
        $texto[$x] = $v;
    }

    if (!empty($_GET['page'])){
        $saida = $texto[$_GET['page']];
    } else {
        $saida = $texto[1];
    }

    if ($x > 1){
        $saida .= '<div class="pagination bottom">
              <p>-'.strip_tags($categoria['titulo_topo']).'-</p>
              <ul>';              
        for ($i = 1; $i <= $x; $i++){
              $saida .='<li><a'. if $i == $_GET['page'] echo 'class="active"'; .'href="?page='.$i.'">'.$i.'</a></li>';
        }
        $saida .='</ul>
              <p><a href="?page='.($x).'">&gt;&gt;</a></p>
              </div> ';
    }
    return $saida;
}

?>
4

1 回答 1

1

您需要一个三元条件运算符:

$saida .='<li><a'. ($i == $_GET['page'] ? ' class="active"' : '') .' href="?page='.$i.'">'.$i.'</a></li>';

你可以在这里阅读更多关于它的信息。

编辑修复了一个错误:)

测试:

$ cat paging.php 
<?php
    $_GET['page'] = '5';

    for ($i = 0; $i < 10; $i++) {
        $saida .='<li><a'. ($i == $_GET['page'] ? ' class="active"' : '') .' href="?page='.$i.'">'.$i.'</a></li>' . "\n";
    }

    var_dump($saida);
$ php paging.php 
string(345) "<li><a href="?page=0">0</a></li>
<li><a href="?page=1">1</a></li>
<li><a href="?page=2">2</a></li>
<li><a href="?page=3">3</a></li>
<li><a href="?page=4">4</a></li>
<li><a class="active" href="?page=5">5</a></li>
<li><a href="?page=6">6</a></li>
<li><a href="?page=7">7</a></li>
<li><a href="?page=8">8</a></li>
<li><a href="?page=9">9</a></li>
"
于 2013-04-05T19:16:29.220 回答