使用 PHP 加载外部站点而不破坏该站点中的相关链接
Load external site with PHP without breaking relative links in that site
我有一个 php 页面,我试图在其中加载然后回显和外部页面(它位于同一台服务器中,但在完全不同的 path/domain 中,如果这很重要) .
我试过同时使用 file_get_contents()
和 curl
。他们都正确加载了目标页面的 html,问题是它没有正确显示,因为该目标页面有几个文件的相对链接(图像,css,javascript)。
有什么方法可以用 PHP 完成吗?如果没有,下一个最好的方法是什么?目标站点必须看起来像是从初始页面加载的(URL-wise),我不想进行重定向。
所以,浏览器会显示 http://example.com/initial-page.php even though its contents come from http://example2.com/target-page.php
编辑:
这是可以使用 iframe 轻松完成的事情,但出于多种原因我也想避免这样做,其中之一是因为使用 iframe 会破坏目标站点的响应能力。我也无法更改目标站点的代码来修复它。
最后,解决方案结合了我尝试做的事情(使用 curl
)和 WebRookie 建议使用 base
的方法html 正在通过 curl 加载的页面中的标记。
在我的特殊情况下,我将 base URL 作为参数传递给 curl
并在加载的页面中回显它,允许我从不同的网站加载同一页面(这是我想要这样做的另一个原因)。
我有一个 php 页面,我试图在其中加载然后回显和外部页面(它位于同一台服务器中,但在完全不同的 path/domain 中,如果这很重要) .
我试过同时使用 file_get_contents()
和 curl
。他们都正确加载了目标页面的 html,问题是它没有正确显示,因为该目标页面有几个文件的相对链接(图像,css,javascript)。
有什么方法可以用 PHP 完成吗?如果没有,下一个最好的方法是什么?目标站点必须看起来像是从初始页面加载的(URL-wise),我不想进行重定向。
所以,浏览器会显示 http://example.com/initial-page.php even though its contents come from http://example2.com/target-page.php
编辑: 这是可以使用 iframe 轻松完成的事情,但出于多种原因我也想避免这样做,其中之一是因为使用 iframe 会破坏目标站点的响应能力。我也无法更改目标站点的代码来修复它。
最后,解决方案结合了我尝试做的事情(使用 curl
)和 WebRookie 建议使用 base
的方法html 正在通过 curl 加载的页面中的标记。
在我的特殊情况下,我将 base URL 作为参数传递给 curl
并在加载的页面中回显它,允许我从不同的网站加载同一页面(这是我想要这样做的另一个原因)。