[英]display image from HTML page using PHP without calling PHP script or using PHP echo to hide image path
我想在HTML网页中显示文件中的图像,使用PHP隐藏文件的位置,使用PHP标头/ readfile,并避免使用任何会泄露文件位置的PHP(例如echo)。
到目前为止,我只能通过从HTML调用PHP scrpit来使此工作正常进行,但是宁愿不调用脚本也可以这样做,因此查看者看不到PHP脚本文件。 我不想使用PHP文件而不是HTML文件(因此查看器无法自己输入PHP脚本的URL)。
image.php:
<?php
header('Content-Type:image/jpeg');
readfile('../image.jpg');
?>
image.html:
<html>
...
<img src="image.php"/>
在HTML文件中,我想做等效但内联的操作:
<html>
...
<img src="<?php header('Content-Type:image/jpeg');readfile('../image.jpg');?>"/>
要么:
<html>
...
<?php
echo '<img src="';
header('Content-Type:image/jpeg');
readfile('../image.jpg');
echo '"/>';
?>
我怀疑我对HTML和PHP如何协同工作缺乏了解使我失望了。
我想做等效但内联的:
你不能。 您必须有单独的请求。 您可以选择将图像内联为base64,但无论如何都是一个坏主意。
同样,这段代码看起来毫无意义-您只要暴露现有文件而没有这样做的任何好处,但是却要杀死所有浏览器可以完成的缓存和其他功能。 除非您知道如何正确执行此操作(这不是那么简单),否则您将使简单的事情变得复杂而不是简化复杂的事情。
尝试时无法完成您想要的。 您可以通过base64方法来回显内容。 但这会使您的html尺寸迅速增加,这对性能不利。
有一种方法可以使它正常工作。 这有点棘手,但是您可以为此使用.htaccess
文件。 通常,您经常使用它来重写一些URL,以将URL重定向到index.php
。 您还可以使用它来创建图像网址:
RewriteEngine On
RewriteRule ^/special-images/(.*)\.jpg$ /php-file-directory/image.php?image-name=$1 [L]
如果现在执行<img src="/special-images/bob.jpg" />
,它将在内部open-image.php
$_GET['image-name']
open-image.php
$_GET['image-name']
bob
open-image.php
。
*现在无法测试htaccess,但是您可以掌握它的要旨。
尝试将其覆盖到数据URL
https://stackoverflow.com/a/13758760/11485791
例:
<img src="<?
php path = '../image.jpg';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
echo $base64;
?>"/>
但是返回的html将会很大
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.