2015-12-05 21 views
2

Итак, я пытаюсь создать слайд-шоу для сайта, который я создаю, но неясно, сколько изображений я должен будет включить. Текущий код для получения изображения приведен ниже, но при запуске он отображает только:PHP for-loop с HTML внутри не работает должным образом

output from code

<?php 
       $dir = dirname(__FILE__).'/img'; 
       $images = scandir($dir); 
       if($images) 
       { 
        foreach($images as $image) 
        {?> 
         <div class="slide active-slide slide-feature"> 
          <div class="container"> 
           <div class="row"> 
            <div class="col-xs-12"> 
             <a href="#"><img src= <?php echo ('"' . $dir . '/' . $image . '"') ?> ></a> 
            </div> 
           </div> 
          </div> 
         </div> 
      <?php 
        } 
       } 
      ?> 

Примечание: Когда я только тип из HTML вручную и включают в себя конкретные адреса, сам HTML отлично работает, поэтому я предполагаю, что это проблема с интеграцией HTML и PHP.

ответ

0

$dir = dirname(__FILE__).'/img';

В этом контексте $dir является абсолютной файловой системы путь, а не URL. Итак, когда вы используете $dir в атрибуте src элемента img, изображение никогда не будет найдено. Вы могли бы это исправить, просто делая URL относительно (хотя относительно корня URL будет предпочтительнее), например:

<a href="#"><img src="img/<?=$image?>"></a> 

Вы должны также отметить, что функция scandir() также возвращает две «специальные» каталоги . и .., поэтому их необходимо будет пропустить в начале вашего цикла foreach(). Например:

if (in_array($image,array('.','..'))) continue; 

Смешивание выхода внутри PHP строит таким образом (путем разрыва в/из режима PHP) не является хорошей практикой, поскольку это ограничивает мобильность, труднее читать, труднее отлаживать и т.д. Вместо этого, подумайте о назначении вашего вывода переменной и повторите это в конце вашего скрипта.

+0

Хорошо. Спасибо за помощь. Следующий вопрос: Мое слайд-шоу теперь работает по большей части, но мой Javascript, который был функционален с ранее объявленным количеством изображений (без PHP), больше не является полностью функциональным. Он настроен так, что когда он находится на последнем пункте, и вы нажмете на следующую стрелку, он вернется к первому. Слайд-шоу можно найти здесь (http://www.zacharyamason.com/slideshow.php), а JS можно найти здесь (http://www.zacharyamason.com/js/slideshow-app.js) – user3213722

Смежные вопросы