2013-11-26 69 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 [$ X]'将被用来代替实际的变量值。改为使用双引号。 –

回答

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

原因是您的网址无效。如果您使用单引号,则变量不会回显。你也忘了结束标签。试试这个:

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

@TiMESPLiNTER:即使使用STRICT文档类型,它们也是有效的。 –

+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'; 
    } 
}