我的目标是创建一个网站,您可以在其中将网址插入文本区域,打开它并将其显示在同一页面中的单独div中。
这个想法 - > http://s10.postimg.org/pm4n1qms9/Cattura.png
我知道这个问题可以在过去回答(我读了一些关于它的其他话题)但遗憾的是没有人帮助我解决我要解释的问题。
问题:页面中具有RELATIVE PATH的所有媒体都给出了404状态。我知道,这是正常的,但我想将所有RELATIVE PATH转换为ABSOLUTE PATH或其他内容,以便将媒体显示在面板中。
问题 - > http://s10.postimg.org/9mlzi6qqh/image.png
我不是要求做我的工作,但我正在拼命寻找一些提示或建议!
如果您需要,这是代码
客户端(javascript,按下网址栏下方的按钮时激活)
if (ValidURL($("#areaUrl").val())) {
$.ajax({
method: 'GET',
url: '...',
dataType: 'html',
data: {
'requestedUrl': $("#areaUrl").val()
},
success: function (data) {
console.log(data);
$('#mainContent').html(data);
},
error: function (xhr, status, error) {
//something happens
}
});
}
这是PHP服务器代码
<?php
//the function I found to download the page with curl
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 = utf8_decode(curl_exec($ch));
curl_close($ch);
return $data;
}
//answering the client...
$url = $_GET['urlRichiesto'];
$forTheClient = get_data($url);
header('Access-Control-Allow-Origin: * ;');
header('Content-type: text/html; charset = UTF-8');
echo $forTheClient ;
非常感谢任何想要给我一些提示的人!
答案 0 :(得分:0)
没有直接的方式来抓取和显示网页,就像我们在网络浏览器中看到的那样。 无论如何你必须转换相对于绝对路径(在HTML代码以及JS和CSS)。 但你必须要小心。如果在爬网后将代码直接插入div,则该代码下包含的JS将不会被浏览器执行。因此,唯一的方法是通过HTML iframe下的代码(从插入中抛出diff)强制执行。