如何使用php创建一个逻辑来循环HTML中的内容
我有一个下面的html代码,它的意思是显示6个广告。 我想做的是创建一个逻辑,用php循环以下内容。 例如:目前Ads1和ADS2位于顶部的第一和第二位,但当某个方法 称为Ads1和ADS2的将下降到Ads5和ADS6,Ads3和ADS4将占据第一和第二位置(循环)。 我的解释可能会让人困惑,但我想做的是在调用方法时循环两个标记(比如左轮手枪)。 实际上,我想用下面的代码每两周循环一次内容。我应该使用会话来保存数据吗?我怎样才能做到这一点?我很想听到你的消息如何使用php创建一个逻辑来循环HTML中的内容,php,html,Php,Html,我有一个下面的html代码,它的意思是显示6个广告。 我想做的是创建一个逻辑,用php循环以下内容。 例如:目前Ads1和ADS2位于顶部的第一和第二位,但当某个方法 称为Ads1和ADS2的将下降到Ads5和ADS6,Ads3和ADS4将占据第一和第二位置(循环)。 我的解释可能会让人困惑,但我想做的是在调用方法时循环两个标记(比如左轮手枪)。 实际上,我想用下面的代码每两周循环一次内容。我应该使用会话来保存数据吗?我怎样才能做到这一点?我很想听到你的消息 $weekInYearNumber
$weekInYearNumber = (int)date('W');
$weekDayNumber = (int)date('w');
if ($weekInYearNumber % 2 == 0) {
}
<div class="ContentsWrap">
<ul class="List_1">
<li>
<a>Ads1</a>
</li>
<li>
<a>Ads2</a>
</li>
</ul>
<ul class="List_2">
<li>
<a>Ads3</a>
</li>
<li>
<a>Ads4</a>
</li>
<li>
<a>Ads5</a>
</li>
<li>
<a>Ads6</a>
</li>
</ul>
</div>
$weekindNumber=(int)日期('W');
$weekDayNumber=(int)日期('w');
如果($weeKindNumber%2==0){
}
-
Ads1
-
Ads2
-
Ads3
-
Ads4
-
Ads5
-
Ads6
您的方法将无法正常工作:
$weekInYearNumber = (int)date('W');
$weekDayNumber = (int)date('w');
if ($weekInYearNumber % 2 == 0) {
// Rotate here
}
首先,如果仅每隔两周运行一次轮换,则必须保存状态,以便将其保留两周。其次,每次访问页面时都会运行此代码。也就是说,您还必须保存我本周已轮换的信息
当然,您可以这样做,但也可以不保存(到数据库中)来完成。
要做到这一点,请使用下面的代码,而不是您的代码。评论中的解释:
// Fetch your ads and put them into an array (this is not yet rotated):
$ads = ['ad1', 'ad2', 'ad3', 'ad4', 'ad5', 'ad6'];
// We calculate the number of weeks since 1970-01-01
// to always have the same basis for our calculation.
// If you use (int)date('W') you will have a change each new year.
$weeknumber = floor(time() / 86400 / 7);
// Every two weeks, we rotate 2 items, which makes (count of ads) weeks for a full rotation.
$rotate = $weeknumber % count($ads);
//But we only rotate every two weeks
$rotate = floor($rotate / 2);
//Now, we rotate!
for ($i = 0; $i < $rotate; $i++) {
// Push two elements to the end of the array
array_push($ads, array_shift($ads));
array_push($ads, array_shift($ads));
}
// Output your ads as you like and you are done.
//获取您的广告并将其放入一个数组中(尚未轮换):
$ads=['ad1'、'ad2'、'ad3'、'ad4'、'ad5'、'ad6'];
//我们计算自1970-01-01以来的周数
//我们的计算总是有相同的基础。
//如果您使用(int)date('W'),您将在每年的新年中进行更改。
$weeknumber=楼层(时间()/86400/7);
//每两周,我们轮换2个项目,这使得(计算广告数)周为一个完整的轮换。
$rotate=$weeknumber%计数($ads);
//但我们每两周才轮换一次
$rotate=地板($rotate/2);
//现在,我们轮换!
对于($i=0;$i<$rotate;$i++){
//将两个元素推到数组的末尾
数组推送($ads,数组移位($ads));
数组推送($ads,数组移位($ads));
}
//输出你喜欢的广告,你就完成了。
如果我想旋转8个内容,该怎么办?我应该将6替换为8吗?我更新了代码以使用可变数量的广告。但是,它们仍然需要是2的倍数。我应该使用会话来保存值吗?我应该保存哪些值?提前谢谢你!你的意思是我在答案顶部的评论?不,这个环节不起作用。为此,您需要一个持久性存储,如数据库。或者您使用我的解决方案。这是否意味着您的示例代码对于我的解决方案就足够了?