大家好,
我有以下内容:
$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 " ";
}
不幸的是,我不相信我使用得当。结果是什么 - 虽然我得到了所需的字符串替换条件,它回应整个分页但没有格式化。
这是图片:
所以这是一团糟。
有没有办法进行搜索和替换,但没有创建第二个“分页”?
答案:
$string = $html;
if(strstr($string, '<span class="pagenav">Start</span>'))
{
return str_replace("img-start", "img-start-active", $string);
}
else
{
echo " ";
}
删除return $html;
答案 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-active
和img-end-active
相同的内容为img-start
和img-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;