EDIT: я обновил этот вопрос с помощью рабочего кода, но я оставил содержание текста в отдельности, чтобы вы могли видеть, что я пытаюсь сделать в будущем, а также потому, что было еще несколько вещей, которые я хотел сделать кроме первоначального вопроса.
У меня есть массив, в котором есть 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 файл?), Чтобы сделать это редактируемым, Если у кого есть идеи, я открыт!
При конкатенации строк вам также необходимо включить файл переменных перед назначением им переменных в массив. Вам также не нужно обертывать переменные 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>