0

我在将图像回显到浏览器时遇到了一些困难。我对 PHP 很陌生,过去一个小时我一直在网上搜索,但没有找到解决方案。我尝试添加header('Content-Type: image/jpeg'); 到文档中,但它什么也没做。我希望我的代码扫描目录并将其所有图像文件放入 $thumbArray 中,我将回显到浏览器。我的最终目标是一个照片库。将图像放入数组中可以正常工作,但不会在页面上显示它们。这是我的代码:

  <?php

//Directory that contains the photos
$dir = 'PhotoDir/';

//Check to make sure the directory path is valid
if(is_dir($dir))
{
    //Scandir returns an array of all the files in the directory
    $files = scandir($dir);
}



//Declare array
$thumbArray = Array();

foreach($files as $file)
{
    if ($file != "." && $file != "..")     //Check that the files are images
        array_push($thumbArray, $file);   //array_push will add the $file to thumbarray at index count - 1
}


 print_r($thumbArray);


include 'gallery.html';

?>

这是 Gallery.html 文件:

    <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Gallery</title>
</head>
<body>


    <?php
    header('Content-Type: image/jpeg'); 

    for($i = 0; $i < count($thumbArray); $i++)
     echo '<img src="$dir'.$thumbArray[$i].'" alt="Picture" />';

    ?>

</body>
</html>
4

1 回答 1

4

对于您当前的情况,只需header('Content-Type: image/jpeg');从您的代码中删除。您的输出是 HTML。所有图像都在IMG标签内输出。在这种情况下,不需要额外的头文件修改。

另外,如果您想使用 PHP,请不要将此代码放在 *.html 文件中。它不会在具有默认 http-server 设置的 *.html 内运行。重命名gallery.html为 thegallery.php并更改include 'gallery.html';为 the include 'gallery.php';,它将正常工作(当然,如果您也已删除header('Content-Type: image/jpeg');)。

第三个坏事是:

echo '<img src="$dir'.$thumbArray[$i].'" alt="Picture" />';

您正在尝试将$dir变量放入单引号中。只有双引号允许您在里面使用 PHP 变量。

更改:

echo '<img src="'.$dir.$thumbArray[$i].'" alt="Picture" />';

更改后,请查看页面源代码并检查您的图像路径是否正确。如果不是,请采取一些措施来纠正它。例如,也许您忘记了目录分隔符,正确的字符串将是:

echo '<img src="'.$dir.'/'.$thumbArray[$i].'" alt="Picture" />';

等等。

于 2013-11-04T04:22:19.810 回答