在 PHP 中显示图像时出错

Error when displaying image in PHP

我正在尝试了解 PHP 中的文件系统是如何工作的。我创建了一个小示例来显示文件夹中的图像,但我认为我正在打印内容而不是打印图像。

<?php
  $image = "/path/to/image.jpg";
  $myfile = fopen($image, "r") or die("Unable to open file!");

  $logo = fread($myfile,filesize($image));
  echo"<img src=\"$logo\" width=\"100\" height=\"100\"\/>"; 
?>

我是不是碰巧写错了命令或错过了我需要做的事情?

img src 属性采用一个文件名,并执行自己的过程来读取图像并实际显示它。如果你用文本编辑器打开一个图像文件,你会得到有趣的乱码。你在上面的代码中试图做的是把那些乱码放在 src 中。如果您在浏览器中查看源代码,您可以看到。

如果您想显示您实际上并不需要的图像 php,只要路径在您的 webroot 中,这将只是 <img src="/path/to/image.jpg">

您需要提供图像 url 作为 src 而不是它的内容,如下所示:

$log = "http://ideone.com/gfx2/img/spoj.png";

echo "<img src='$log' width='100' height='100'/>"; 

DEMO

假设图像与 html 页面位于同一目录中,那么您可以简单地使用:

$log = "spoj.png";
echo "<img src='$log' width='100' height='100'/>"; 

让我们假设图像位于与 html 页面相同的目录中名为 images 的目录中,那么您可以使用:

$log = "images/spoj.png";
echo "<img src='$log' width='100' height='100'/>"; 

你的数据不是路径,而是文件的内容,可以,但你必须使用数据URI语法:

$logo = "data:image/jpg;base64,".base64_encode($logo);
echo"<img src=\"$logo\" width=\"100\" height=\"100\"\/>"; 

在此处查看类似主题: