我正在做一个项目,我想将一个网页(我没有托管)的内容加载到我托管的网页中,并且能够访问非托管页面的 DOM。
如果有人对是否有可能实现这一点有任何建议,我很想听听一些反馈。也许 PHP 甚至不是答案。也许我对这一切都错了。在这一点上,我绝对愿意接受任何建议!
感谢阅读,DJ
我正在做一个项目,我想将一个网页(我没有托管)的内容加载到我托管的网页中,并且能够访问非托管页面的 DOM。
如果有人对是否有可能实现这一点有任何建议,我很想听听一些反馈。也许 PHP 甚至不是答案。也许我对这一切都错了。在这一点上,我绝对愿意接受任何建议!
感谢阅读,DJ
您可以在 PHP 中使用 curl 将网页加载到变量而不是 IFrame 中,然后使用包装在布局中的 PHP 输出变量的内容。通过这种方式,所有内容的 DOM 都应该可以通过 JavaScript 访问。
正如 ronnied 回答的那样,您可以使用 CURL 来加载页面。您可以在加载的页面上使用简单的正则表达式查询来更新所有链接。以下代码应该为您指明正确的方向,特别是查找 preg_replace 和 preg_replace_callback:
//Regular expression to deal with links...
function replaceCallback($match){
$url = $match[3];
...
return $match[1].$match[2].$replacement.$match[4];
}
//$html is curl'd page contents
$pattern = "/(<a.*?href\s*=\s*)('|\")(.*?)('|\")/i";
$html = preg_replace_callback($pattern,'replaceCallback',$html);
正则表达式很难理解。但是,当您这样做时,您将获得很高的回报,因为它们非常强大...