在我的网站上显示用户请求的另一个网页。

时间:2013-01-12 12:06:07

标签: php

  

可能重复:
  Fetching data from another website

我想创建一个网页,根据用户的要求在其上显示另一个网页。用户输入URL并在我的网站上看到他想要的网页。请求到另一个页面必须来自我的服务器,而不是来自用户。否则我可以使用iframe。

我愿意在php上写它,因为我知道它的一些。谁能告诉我一个人必须知道的主题呢?

2 个答案:

答案 0 :(得分:0)

你可以使用

echo file_get_contents('http://google.com')

但为什么不下载像http://sourceforge.net/projects/poxy/

这样的php webproxy软件包

答案 1 :(得分:0)

你需要某种“PHP代理”,这意味着通过curl或file_get_contents()获取网站内容。请看这里:http://davidwalsh.name/curl-download
您的代理脚本可能如下所示:

function get_data($url) {
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}
echo get_data($_GET["url"]);

请注意,您可能需要注意图像标题等,并且可能还存在一些安全漏洞,但这是基本想法。
现在,您必须解析刚刚获得的初始网站的内容,并更改此格式的所有链接:

http://example.com/thecss.css 

http://yoursite.com/proxy.php?url=http://example.com/thecss.css

某些正则表达式或PHP HTML解析器可能在这里工作。