用于分页的条件str_replace

时间:2012-05-14 22:29:55

标签: php javascript html pagination

大家好,

我有以下内容:

$html = '<ul class="pagination-all">';
    $html .= '<li class="pagination-start"><div class="img-start"></div>'.$list['start']['data'].'</li>';
    $html .= '<li class="pagination-prev"><div class="img-prev"></div>'.$list['previous']['data'].'</li>';
    $html .= '<ul class="pagination-data">';
    foreach($list['pages'] as $page) {
        $html .= '<li>'.$page['data'].'</li>';
    }
    $html .= '</ul>';
    $html .= '<li class="pagination-next">'. $list['next']['data'].'<div class="img-next"></div></li>';
    $html .= '<li class="pagination-end">'. $list['end']['data'].'<div class="img-end"></div></li>';
    $html .= '</ul>';

    return $html;

我想知道如何找到它,如果它找到Start,则字符串将“img-start”替换为“img-start-active”。如果找到span class =“pagenav”&gt;结束,字符串将“img-end”替换为“img-end-active”。

我试过了:

$string = $html;
if(strstr($string, '<span class="pagenav"> Start </span>'))
{
echo str_replace("img-start", "img-start-active", $string);
}
else
{
echo " ";
}

不幸的是,我不相信我使用得当。结果是什么 - 虽然我得到了所需的字符串替换条件,它回应整个分页但没有格式化。

这是图片:enter image description here

所以这是一团糟。

有没有办法进行搜索和替换,但没有创建第二个“分页”?

答案:

 $string = $html;
        if(strstr($string, '<span class="pagenav">Start</span>'))
        {
        return str_replace("img-start", "img-start-active", $string);
        }
        else
        {
        echo " ";
        }

删除return $html;

2 个答案:

答案 0 :(得分:1)

丢失了哪种格式?原始字符串$html也没有格式化:)如果您echo $html;您将看到其中没有格式化。如果需要,可以将\n添加到您想要换行的每一行的末尾(确保用双引号替换字符串周围的单引号)。例如,您的第二行看起来像这样:

$html .= '<li class="pagination-start"><div class="img-start"></div>'.$list['start']['data']."</li>\n";

编辑(问题更新后):

在这种情况下,可能是因为没有设置新类名的CSS。在您的css文件中,如果您使用与img-start-activeimg-end-active相同的内容为img-startimg-end创建新课程,则不应丢失任何格式。

答案 1 :(得分:0)

$string = $html;
    if(strstr($string, '<span class="pagenav">Start</span>'))
    {
    return str_replace("img-start", "img-start-active", $string);
    }
    else
    {
    echo " ";
    }

删除return $html;