【发布时间】:2019-06-13 17:51:02
【问题描述】:
我拥有的代码应该从目录中的文件列表中输出 jpg,但事实并非如此。我搜索了这个网站并尝试了不同的方法,但没有帮助。我是 php 的相对初学者,所以寻求任何帮助。
我尝试在 php 代码中使用 img src,但我试图让图像显示在 Wordpress 帖子中,因此我无法在脚本中回显 img src。我也尝试过 file_get_contents 并读取文件,但可能是我缺乏知识阻碍了我。
<?php
$imagepath = htmlspecialchars($_GET["image"]);
$imagenum = htmlspecialchars($_GET["num"]);
define('LOCALHOST', 'localhost' === $_SERVER['SERVER_NAME'] );
If(LOCALHOST){
define('PATH_IMAGES', 'this_path');
}else{
define('PATH_IMAGES', '../../../Images/');
}
$arrnum = $GLOBALS[imagenum] - 1;
$dirname = PATH_IMAGES . $GLOBALS[imagepath]."/";
$images = scandir($dirname);
rsort($images);
$ignore = Array(".", "..");
foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {
header('Content-type: image/jpeg');
file_get_contents('$dirname$images[$arrnum]');
}
}
?>
【问题讨论】:
-
假设您发送正确的图像类型(您确定它们都是 jpeg 图像)与标题,您可以使用
file_get_contents()来渲染图像,但您需要回显图像... -
当我使用以下行时: echo file_get_contents($dirname.$images[$arrnum]);我遇到了与 readfile 相同的问题 - 它将蓝色方块放在页面上,如果我直接加载 php,我会得到很多乱码等
-
那么听起来好像不是jpg文件,你试过 var dump $images 只是为了看看它拉进了哪些文件?
-
$图像的var转储是字符串(45)“192.168.1.jpg”字符串(45)“192.168.1.jpg”String(45)“192.168.1.108_01_20181226154000368_timing.jpg " 字符串(45)
-
刚刚注意到,您似乎忘记了
$dirname和$images[$arrnum]之间的串联.- 使用:file_get_contents($dirname . $images[$arrnum]);