请帮助我:)
我有这个代码可以过滤Feed标题。然而,这是一个混乱的无序列表。
$countItem = 0;
foreach ($feed->get_items() as $item): {
$checktitle = $item->get_permalink();
$keyword_one = '/keyword1/';
$keyword_two = '/keyword2/';
if (preg_match_all($keyword_one, $checktitle, $matches) && preg_match_all($keyword_two, $checktitle, $matches)) {
echo $item->get_title();
}
}
endforeach; ?>
我想在div课程中回应结果如下,但我不知道如何。如果我在preg_match_all之后放置div,则会出错。
<div class="item">
<a href="<?php echo $item->get_title(); ?>"</a>
<p><?php echo $item->get_description(); ?></p>
</div>
不知道该怎么做,你能帮帮我吗?
谢谢!
答案 0 :(得分:0)
你不能在php中放置html代码。使用php close标签关闭php代码,然后添加html。请执行以下操作。
<?php
$countItem = 0;
foreach ($feed->get_items() as $item): {
$checktitle = $item->get_permalink();
$keyword_one = '/keyword1/';
$keyword_two = '/keyword2/';
if (preg_match_all($keyword_one, $checktitle, $matches) && preg_match_all($keyword_two, $checktitle, $matches)) {
// Closing php tag..
?>
<div class="item">
<a href="<?php echo $item->get_title(); ?>"</a>
<p><?php echo $item->get_description(); ?></p>
</div>
<?php // Opening php tag after adding html..
}
}
?>
答案 1 :(得分:0)
您只需使用和preg_match
代替preg_match_all
$items = array_filter($feed->get_items(), function ($item) {
return preg_match('/keyword1|keyword2/', $item->get_permalink());
});
foreach ($items as $item) {
echo '
<div class="item">
<a href="' . $item->get_title() . '"</a>
<p>' . $item->get_description() . '</p>
</div>';
}
此外,在前端和后端代码之间混合时要多加注意。在:
循环后,您还需要额外foreach
:foreach ($feed->get_items() as $item): {