2013-11-26 4 views
0

У меня есть следующий код:PHP/чтение из папки

<?php 
    $path = 'imgsFor'; 
    $files_array = scandir($path); 
    for ($x=0; $x<=4; $x++) 
    { 
    echo '<img src="imgsFor/$files_array[$x]" <br>'; 
    } 
?> 

Для того, чтобы отобразить все изображения в папке imgsFor.

По какой-то причине я вижу только ящики, а не фактические изображения.

В чем причина?

+0

Причина заключается в том, что вы используете одинарные кавычки вместо двойных кавычек, так что буквальная строка 'imgsFor/$ files_array [$ х]' будет использоваться вместо фактического значение переменной. Вместо этого используйте двойные кавычки. –

ответ

0

Вы перепутались некоторые вещи. Ваш правильный скрипт будет

<?php 

$path = 'imgsFor/'; 
$files_array = scandir($path); 
foreach($files_array as $f) { 
    if(is_dir($path . $f) === false) 
     continue; 

    echo '<img src="' , $path , $f , '"><br>'; 
} 

/* EOF */ 
0

Причина в том, что ваш URL-адрес недействителен. Ваша переменная не будет повторяться, если вы используете одинарные кавычки. Вы также забыли закрыть тег. Попробуйте это:

echo "<img src='http://yourwebsite.com/imgsFor/{$files_array[$x]}'/><br/>"; 
+0

@TiMESPLiNTER: они действительны даже при использовании метода STRICT doctype. –

+0

@TiMESPLiNTER: [Говорит кто?] (Http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.2) –

4

Самый лучший способ для меня, чтобы использовать glob функцию:

foreach (glob($path) as $filename) { 
    echo '<img src="' . $path . '/' . $filename . '"/><br/>'; 
} 
+0

Просто спрашивайте: в чем преимущество использования 'glob()' если вы просто хотите перебирать все файлы в папке? Для шаблонов (что-то вроде '* .txt')' glob() 'совершенен, но разве это не избыток для простого пути? – TiMESPLiNTER

+0

@TiMESPLiNTER Вы правы - лучше использовать 'scandir' с' is_dir'. :-) – hsz

0

Пожалуйста, проверьте путь к каталогу и используйте is_dir, который возвращает false, когда файл не существует. вы можете попробовать, как этого

$path = 'imgsFor'; 

$scan = scandir($path); 

foreach($scan as $file) 
{ 
    if (!is_dir($path)) 
    { 
     echo $file.'\n'; 
    } 
} 
Смежные вопросы