Php 屏蔽图像URL并使其看起来像web服务器上的图像URL

Php 屏蔽图像URL并使其看起来像web服务器上的图像URL,php,mysql,Php,Mysql,我如何在我的网站上创建一个名为banner.php的页面,并让该页面在我的数据库中查找banner id(已经知道如何查找并获取url),但如果我想在其他人的网站上的标签中使用myurl.com/banner.php?bid=3,我如何让它看起来像是实际的图像目的地 问候,, 贾罗德 任何人谁可以帮助就如何做到这一点表示感谢 在banner.php中,您必须从实际服务器加载图像,并在banner.php中再次输出。确保发送正确的内容类型标题,以便浏览器将您的PHP文件作为图像 我能想象的jpeg

我如何在我的网站上创建一个名为banner.php的页面,并让该页面在我的数据库中查找banner id(已经知道如何查找并获取url),但如果我想在其他人的网站上的标签中使用myurl.com/banner.php?bid=3,我如何让它看起来像是实际的图像目的地

问候,, 贾罗德


任何人谁可以帮助就如何做到这一点表示感谢

在banner.php中,您必须从实际服务器加载图像,并在banner.php中再次输出。确保发送正确的内容类型标题,以便浏览器将您的PHP文件作为图像

我能想象的jpeg图像banner.php的最快代码可能如下所示:

<?php
$imageContents = file_get_contents('http://example.com/real-banner.jpg');
header('Content-Type: image/jpeg');
echo $imageContents;

我怎么才能不使用/image之后的东西呢?我不知道它一直是什么样的图像,我得到的不是图像,而是你放了一个.png,但发送了一个图像/webp图像头。请看我上面回答中关于如何检索原始内容类型标题的编辑。使用web服务器URL重写技巧
<?php
$imageContents = file_get_contents('http://example.com/real-banner.jpg');
// get the content type header out of the file_get_contents request
foreach ($http_response_header as $header) {
    if (strtolower(substr($header, 0, 13)) == 'content-type:') {
        $origContentTypeHeader = $header;
        break;
    }
}
header($origContentTypeHeader);
echo $imageContents;