我怎么能让PHP内联显示图片

时间:2016-02-05 11:44:45

标签: php html

我需要帮助才能在我的文件夹内联显示我的所有图片,而不是相互显示。

<?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 个答案:

答案 0 :(得分:1)

没有任何其他HTML,图像默认显示为内嵌。但是您使用"<br /><br />"添加的中断会使此行为无效,并使图像包装成一列。

所以只需删除那些休息时间。如果您关注的是自己包装HTML代码,那么请插入换行符(\n)。

我借此机会强调可以改进的PHP代码的某些方面:

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

此清理会产生以下代码:

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

关于应用于图片的HTML属性widthheight

这确实是值得避免的。您应该使用这些图像的正确尺寸,因为图像可能会因为强制尺寸而变得难看。如果它们是您的图像,则使这些图像具有合适的尺寸。我在上面的代码中保留了这些属性,但请重新考虑如何处理图像大小。

我注意到您在pastebin.com上分享的HTML中存在一个问题:

  • titlemeta代码应移至head代码中,不应将其显示为html代码的直接子代。
  • 另请注意,您已通过body标记加载了背景图片。我希望你没有误解,因为肯定这个图像会与你产生的其他img标签重叠。

答案 1 :(得分:0)

你应该使用css类和样式。

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

然后在html head中包含样式表

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

最后在stylesheet.css中设置图像样式

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

所有这些都是最基本的html和css内容。在提问之前,请考虑阅读一些教程。