我在浏览器中回显图像时遇到了一些困难。我是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>
答案 0 :(得分:4)
对于您当前的情况,只需从代码中删除header('Content-Type: image/jpeg');
即可。您的输出是HTML。所有图像都在IMG
标签内输出。在这种情况下,不需要额外的标题修改。
此外,如果您想使用PHP,请不要将此代码放在* .html文件中。它不会在默认的http-server设置的* .html内运行。将gallery.html
重命名为gallery.php
并将include 'gallery.html';
更改为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" />';
等等。