file_get_contents - 也可以获取图片

时间:2009-08-07 15:35:27

标签: php image file-get-contents

各位大家好!我在最近用PHP和file_get_contents编码时遇到了一个问题。我的问题是,当我加载这样的网站时:

<? echo file_get_contents($_GET['url']); ?>

我加载的网站图片没有显示。例如,当我去谷歌时,没有显示图片。这是我访问的每个网站。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:10)

您正在显示的HTML页面假设您还有可用的图像,这些图像与原始页面的服务器(例如Google.com)上的图像不同。

确保HTML页面上的所有内容加载的最快方法是添加<base href="http://www.google.com/" />。这告诉浏览器返回其他内容的原始路径,包括图像,CSS,脚本等。

您需要在正在显示的HTML页面的<head></head>之间注入。您可以使用正则表达式或简单HTML DOM。

希望有所帮助

答案 1 :(得分:2)

不要这样做。您正在窃取其他网站的内容。正如您所注意到的那样,它也无法正常工作,因为所有相对URL都已损坏。

您可以使用iframe吗?如:

<iframe src="<?php echo htmlspecialchars($_GET['url']) ?>"></iframe>

这是更好的,因为你没有隐藏你从最终用户代理的网站。

答案 2 :(得分:1)

我认为这是因为图片网址是相对的<img src="/img/foo.png">,这意味着它会在您的服务器上查找图片而不是谷歌。修复此问题需要查看源中的所有URL并将其从相对值更改为绝对值。

答案 3 :(得分:1)

file_get_contents()执行它所说的内容,获取作为参数提供的文件或Url的内容。 HTML页面中没有里面的图像,它们不是页面的内容,HTML页面只引用了具有自己内容的外部文件。< / p>