我有一个数组,里面有一个html列表,php正在洗牌,以回应随机顺序。在数组的列表项中,我想包含一个php变量,现在这就是我所拥有的:
<?php include('includes/header_topright_content.php'); ?>
<ul data-options="animation:fade; slide_number:false; pause_on_hover:false; timer_speed:5500; navigation_arrows:false; next_on_click:true; timer:true; bullets:false;" data-orbit>
<?php
$links = array(
'<li data-orbit-slide="headline-1"><img /><div>'.$Slide1.'</div></li>',
'<li data-orbit-slide="headline-2"><img /><div>'.$Slide2.'</div></li>',
'<li data-orbit-slide="headline-3"><img /><div>'.$Slide3.'</div></li>',
);
shuffle($links);
foreach ($links as $link) { echo $link; }
?>
</ul>
我最多可以有10张甚至20张幻灯片。变量链接到的信息来自我“包含”的单独的.php页面。该页面上的信息是:
<?php
$Slide1 = "<h5>Slide 1</h5><h6>This is the content for slide 1!</h6>";
$Slide2 = "<h5>Slide 2</h5><h6>This is the content for slide 2!</h6>";
$Slide3 = "<h5>Slide 3</h5><h6>This is the content for slide 3!</h6>";
?>
如果我废弃变量的想法并将html直接插入到列表项中,它就能完美运行。如果我尝试将变量放在那里,幻灯片将只是空白。我坚持从这里去哪里,我很高兴与HTML和CSS,但不是很好的PHP,所以任何帮助表示赞赏!我也对任何格式提示和最佳实践持开放态度,越清洁越好。
提前致谢!
更多信息:为什么我要这样做,背后有一些并发症。轨道图像滑块不支持随机顺序,我发现使用php随机化列表项的顺序要容易得多。我想在这些列表项中使用变量的原因是因为我使用cms(CouchCMS)来使该内容可编辑 - 一个简单的解决方案是在该内容周围插入可编辑标签,但这只会使一个页面可编辑,这个内容将被“包含”在每个页面的标题中。所以我试图找到一种方法将这些变量放在一个单独的页面上(我知道'包括'它不会这样做 - 也许我可以将它链接到页面,如css或js文件?)以使其可编辑。如果有人对此有任何想法,我会开放!
答案 0 :(得分:3)
使用字符串concatenation,您还需要在将变量分配给数组之前包含变量文件。在回显时,您也不需要将PHP变量包装在引号中。
<?php include('includes/variables.php'); ?>
<ul data-options="[orbit options go here]" data-orbit>
<?php
$links = array(
'<li data-orbit-slide="headline-1"><img /><div>'.$Slide1.'</div></li>',
'<li data-orbit-slide="headline-2"><img /><div>'.$Slide2.'</div></li>',
'<li data-orbit-slide="headline-3"><img /><div>'.$Slide3.'</div></li>',
);
shuffle($links);
foreach ($links as $link) { echo $link; } //<<< notice no quotes
?>
</ul>
我是否可以对您的代码提出建议,通过直接将幻灯片数组分配到外部文件中,您最终可以动态或轻松地将新幻灯片添加到滑块,而无需硬编码到循环之前的第二个子数组。所以像。另外,通过更改为替代语法,您可以保留一个不错的HTML结构。
<?php
$slide[] = "<h5>Slide 1</h5><h6>This is the content for slide 1!</h6>";
$slide[] = "<h5>Slide 2</h5><h6>This is the content for slide 2!</h6>";
$slide[] = "<h5>Slide 3</h5><h6>This is the content for slide 3!</h6>";
shuffle($slide);
?>
<ul data-options="animation:fade; slide_number:false; pause_on_hover:false; timer_speed:5500; navigation_arrows:false; next_on_click:true; timer:true; bullets:false;" data-orbit>
<?php foreach ($slide as $key=>$value):?>
<li data-orbit-slide="headline-<?php echo $key?>"><img /><div><?php echo $value; ?></div></li>
<?php endforeach;?>
</ul>