我想,以显示通用的网站和网址为我自己的网站的一部分。 下面是我使用的代码比较简单的部分:
browse.php
<?
$enteredurl = $_GET["url"];
$page = file_get_contents($enteredurl);
echo $page;
?>
忽略了一个事实,有些链接/图像不会,如果URL是相对的而不是绝对的工作,这工作得很好。 页面使用$ _GET,像访问
browse.php?URL = http://itracki.com
该网页将显示为预期。 然而,当我试图让别的东西,像一个形象,我得到这样的事情,我在想是二进制的还是什么?
browse.php?URL = http://images.itracki.com/2011/06/favicon.png
‰PNG IHDRóÿa%IDAT8Ëc8sæÌJ0M ```ã3`xaÔ€aa]r#f.–ÄíNIEND®B`‚
我一直在寻找在线,并试图修改页头,像
<? header('Content-type: image/png;'); ?>
但我仍然得到同样混乱的结果。 有谁知道我可以实际看到的图像,因为它是,如果我只是通过键入“访问它http://images.itracki.com/2011/06/favicon.png ”到地址栏?
谢谢!
试试这个:
<?php
$img = 'http://images.itracki.com/2011/06/favicon.png';
$info = getimagesize($img);
header('Content-type: ' . $info['mime']);
readfile($img);
?>
您应该使用readfile()
而不是file_get_contents()
在这种情况下,因为readfile()
将文件内容直接发送到浏览器中,而不是存储在内存中它为以后的检索,这是什么file_get_contents()
一样。
还要注意的是content-type
是动态获取,这样你就不必担心在头不正确地指定它。
一些图像可能具有的扩展,它不匹配其content-type
或mime-type
,所以这种校正这些类型的问题。
试试这个
$image = 'http://images.itracki.com/2011/06/favicon.png';
// Read image path, convert to base64 encoding
$imageData = base64_encode(file_get_contents($image));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($image).';base64,'.$imageData;
// Echo out a sample image
echo '<img src="',$src,'">';
echo 'data:;base64,'.base64_encode(file_get_contents('http://images.itracki.com/2011/06/favicon.png'));