如何使用PHP将图像直接加载到页面?

如何使用PHP将图像直接加载到页面?,php,html,image,Php,Html,Image,我有一个直接的图像,比如:test.jpg 我在这个目录中还有另外两个PHP文件:new.PHP和load.PHP 现在,我想做的是,当人们访问网站new.php,他们应该需要看到test.jpg图像 然而!如果我将new.php放入 如果你知道我的意思,那怎么可能让php作为图像工作呢?试试这个: new.php <img src="test.jpg"> 像这样使用它 header("Content-Type: image/jpeg"); $im = imagecreatef

我有一个直接的图像,比如:
test.jpg

我在这个目录中还有另外两个PHP文件:
new.PHP
load.PHP

现在,我想做的是,当人们访问网站
new.php
,他们应该需要看到
test.jpg
图像

然而!如果我将
new.php
放入

如果你知道我的意思,那怎么可能让php作为图像工作呢?

试试这个:

new.php

<img src="test.jpg">
像这样使用它

header("Content-Type: image/jpeg");

$im = imagecreatefromjpeg("test.jpg");

imagejpeg($im);
imagedestroy($im);

使用:

<img src="new.php"/>
其他变体:

header('Content-Type: image/jpeg');
readfile('path/to/image/screenshot.jpg');
如果文件不存在,则不会有任何错误

如果文件不存在,将使用预定义的错误消息终止脚本

@hd建议的最有用的替代方案是:

readfile('path/to/image/screenshot.jpg') or die('Image file not found');
它将选择
$file
,或者如果它不存在,则默认的
图像将找不到.jpg

对于其他图像类型,您可能需要在
标题()
中更改mime类型


注意:另一个答案的功能与这个答案非常相似,但这个答案不使用内存,而且通常比另一个答案更快、更灵活。

请给出示例代码,说明您的意思。.我猜
imagejpeg(imagecreatefromjpeg())
比简单的
readfile()
需要更多的CPU成本。但这是一种方法:)+1'ing,因为它是@t3chguy方法的替代方法。要使其成为有效的HTML,请在
img
标记的末尾添加
/>
——正确关闭标记。在读取之前,我还将检查文件是否确实存在。你知道,在那些罕见的场合。谢谢你,这很有效。这就是我一直在寻找的。@hd,就像我恨他们一样;在这种情况下,
@readfile()将是最简单的。在我的书中,抑制生产中的错误是一个很大的禁忌。一个简单的
文件\u存在
就足够了!我想到的是
$imagePath=file_存在('path/to/image/screenshot.jpg')?'path/to/image/screenshot.jpg':'path/to/image/image_not_found.jpg'。这样,它将渲染图像,而不显示
readfile('path/to/image/screenshot.jpg') or die('Image file not found');
$file = 'path/to/image/screenshot.jpg';
readfile(file_exists($file) ? $file : 'path/to/image/image_not_found.jpg');