如何在php数组中的html中插入变量?

时间:2014-04-27 00:38:59

标签: php html variables zurb-foundation orbit

编辑:我已经用工作代码更新了这个问题,但我已经单独留下了文本的内容,这样你就可以看到我将来要做的事情,还因为还有一些其他的事情我我想抛开最初的问题。

我有一个数组,里面有一个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文件?)以使其可编辑。如果有人对此有任何想法,我会开放!

1 个答案:

答案 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>