2016-02-05 54 views
-1

我需要帮助才能将我的所有图片以内联方式显示在我的文件夹中,而不是相互之间。我该如何让PHP以内联方式显示图片

<?php 

$files = glob("bilder/*.*"); 

for ($i=1; $i<count($files); $i++)  
{ 

    $image = $files[$i]; 
    $supported_file = array(
          'gif', 
          'jpg', 
          'jpeg', 
          'png' 
          ); 

    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION)); 
    if (in_array($ext, $supported_file)) { 
     echo '<img src="'.$image .'" width="400" height="500" />'."<br /><br />"; 
    } else { 
     continue; 
    } 
} 
?> 
+2

删除'
'add'style =“display:inline-block;”' –

+4

PHP does not do this。它的所有HTML/CSS – CodeGodie

+1

你为什么要在你的HTML中添加'
'标签? – CodeGodie

回答

0

您应该使用css类和样式。

echo '<img src="'.$image .'" class="someClass" />'; 

然后包括你的样式表在HTML头

<link rel="stylesheet" href="stylesheet.css"> 

终于风格你的图片在stylesheet.css中

.someClass{ 
    display: inline-block; 
    padding: 3px; 
} 

所有这些是最基本的HTML和CSS的东西。在提问之前请考虑阅读一些教程。

+0

我已经这样做了,那对我没有用。 – spero

+0

@spero然后你没有做对或者没有把它看得足够。如果你愿意,你可以上传您的文件引擎收录,我会看看 – Barthy

+0

PHP代码:http://pastebin.com/hJWFxGvV 和 CSS代码:http://pastebin.com/MnuZMN9A – spero

1

没有任何其他HTML,默认情况下图像显示为内嵌。但是,您添加了"<br /><br />"的中断,可以使此行为无效,并使图像换成一列。

所以只要删除这些休息。如果您担心要自行换行HTML代码,请改为插入换行符(\n)。

我借此机会突出你的PHP代码某些方面可以改进:

  • 没有做continue;时是循环的最后一条语句没有用。你可以把这个else挡住;
  • PHP有一个很好的循环数组构造,即foreach。它使代码更紧凑,同时提高了可读性。
  • 您将变量$ supported_file初始化为循环的每次迭代中的相同值:这应该发生在循环之外;
  • 要过滤文件名的数组,您可以使用preg_grep;
  • 由于HTML支持单引号作为值分隔符,并且PHP将双引号扩展变量名,所以通过切换使用双/单引号可以(在我看来)更好的代码。

该清理结果在此代码:适用于图像widthheight

$files = preg_grep('/^.*\.gif|jpg|jpeg|png$/i', glob("bilder/*.*")); 
foreach ($files as $image) { 
    echo "<img src='$image' width='400' height='500'/>\n"; 
} 

关于HTML属性:

这确实是值得避免。您应该使用这些图像的适当尺寸,因为通过在图像上加上尺寸可能会使图像变得丑陋。如果它们是你的图像,那么使这些图像具有合适的尺寸。我已将这些属性保留在上述代码中,但请重新考虑您如何处理图像大小。

我也注意到一个问题,在你pastebin.com共享的HTML:

  • titlemeta标签应在head标签移动,他们不应该出现的html标记的直接子。
  • 还请注意,您有通过body标记加载的背景图像。我希望你们不要误解,因为那个图像肯定会和你制作的其他img标签重叠。
相关问题