Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP时不显示Base64图像_Php_Html_Image - Fatal编程技术网

使用PHP时不显示Base64图像

使用PHP时不显示Base64图像,php,html,image,Php,Html,Image,我需要显示一个Base64格式的图像。当我在PHP中构建img标记时,它不会显示图像,只会显示default'breaked image'图标。当我查看页面源代码并单击Base64时,数据将按预期显示图片。此外,如果我复制并粘贴页面源代码并将其保存为HTML文件,它将按预期显示。我还尝试了一个随机图像,但当我的图像从一个.html文件工作时,我认为它是可以的,应该可以工作吗 .php代码: header('content-type: text/html'); ... echo "<ht

我需要显示一个Base64格式的图像。当我在PHP中构建img标记时,它不会显示图像,只会显示default'breaked image'图标。当我查看页面源代码并单击Base64时,数据将按预期显示图片。此外,如果我复制并粘贴页面源代码并将其保存为HTML文件,它将按预期显示。我还尝试了一个随机图像,但当我的图像从一个.html文件工作时,我认为它是可以的,应该可以工作吗

.php代码:

header('content-type: text/html');

...

echo "<html><head></head><body>";
echo "Name = $name<br/>";
echo "<img src=\"data:image/jpg;base64,$photo\"/>";
echo "</body></html>";
来自视图源的HTML:

<html>
<head></head>
<body>Name = Andrea Pilipczuk<br/>
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAyADIAA...{too big to fit here].../9k="/>
</body>
</html>
编辑:

这并没有出现在View Source中,但在Chrome周围挖掘,我检查了图像元素,最后发现是9k=�������. 这是填充物吗?当我编辑该元素以删除这些元素时,图像按预期显示

下面的代码删除了随机字符并正确显示图像,但似乎有点粗糙,显然更愿意解决根本问题

$unpadded = explode("=", $photo);
$padding = strlen($unpadded[0]) % 3;
$padded = $unpadded[0];
while ($padding > 0) {
  $padded .= "=";
  $padding--;
}
echo "<img src=\"data:image/jpeg;base64,$padded\"/>";

如果您修改为image/jpeg,则会产生影响?您可以发布图像吗?对于测试?和相关的HTML输出将是有益的。你可能需要一个doctype,但它可能是无关的。试试这篇文章,它应该有你的答案;