可能重复:
从另一个网站获取数据
我想创建一个网页,根据用户的要求在其上显示另一个网页。用户输入 URL 并在我的网站上看到他想要的网页。对另一个页面的请求必须来自我的服务器,而不是来自 user。否则我只能使用 iframe。
我愿意把它写在 php 上,因为我知道一些。谁能告诉我必须知道哪些科目才能做到这一点?
可能重复:
从另一个网站获取数据
我想创建一个网页,根据用户的要求在其上显示另一个网页。用户输入 URL 并在我的网站上看到他想要的网页。对另一个页面的请求必须来自我的服务器,而不是来自 user。否则我只能使用 iframe。
我愿意把它写在 php 上,因为我知道一些。谁能告诉我必须知道哪些科目才能做到这一点?
为此,您需要某种“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 解析器可能在这里工作。
你可以使用
echo file_get_contents('http://google.com')
但是为什么不直接下载一个 php webproxy 包,比如http://sourceforge.net/projects/poxy/