【问题标题】:PHP mirror a webpagePHP镜像网页
【发布时间】:2011-10-19 04:50:04
【问题描述】:

我正在尝试创建用于网站的天气小部件的镜像。目前,它在 HTTPS 页面上使用,但小部件服务器不支持(并且 IE 会因为小部件不是 HTTPS 而对对话框发脾气)

为了解决这个问题,我想做的是在 HTTPS 中镜像页面以消除安全警告。我通常会为此使用file_get_contents(),但是该页面包含图像,这使得它有点复杂。

**另外作为旁注,我或他们的网站上没有任何广告,因此不会窃取收入

【问题讨论】:

  • 仅将网络服务器配置为该站点的代理,这将为您省去很多麻烦。 (如果你不知道怎么做,最好在 ServerFault.com 上询问)。
  • 至少您需要通过 DOM 运行捕获的 HTML 并重新编写 html 中的所有 url 以指向您的代理脚本。但是,请记住 CSS 和 javascript 也可以包含 URL,因此您需要解析/重写该页面中可能存在的所有内容 - 如果它有 Flash 内容,那么您真的搞砸了。

标签: php https mirror


【解决方案1】:

使用 CURL 抓取页面的内容(图像和所有内容)。您可以将其放在一个文件中,然后使用该 URL 代替您使用小部件 URL 的位置:

// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

查看文档:http://www.php.net/manual/en/function.curl-exec.php

【讨论】:

  • 我刚试过这个,它似乎只抓取了页面 hmtl 源(不是图像)
  • 我想,那么,您的问题并不清楚。 HTML 源代码是您显示图像的方式 - 显示 HTML。这个概念不是“镜子”,而是一个代理。
猜你喜欢
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 2016-11-26
相关资源
最近更新 更多