PHP包含完整的URL(或网站)

时间:2010-11-12 13:52:33

标签: php url include

我正在尝试做一些我认为很简单的事情,但似乎不是这样。

我想要的是能够在我的PHP代码中包含一个单独的网站。基本上,原因是我正在写一个“主”页面上有链接,而在我的链接下面是同一页面中的“包含”网站。推理是,我只是为所有用户建立一个简单的“主要”位置来获取我们的工具。问题是,我们的工具跨越了其他几个网站(我们网络的所有本地和内部)。在PHP中,我不确定你能做到这一点,“执行此操作”的方法是使用file_get_contents()来获取远程站点的内容:

 <?php
   $a = file_get_contents("http://url/folder");
   echo ($a);
 ?>

这个解决方案的问题在于CSS文件的所有包含和引用现在都被破坏了,因为我相信,file_get_contents()它只会带来本已生成的源代码,因此链接CSS代码将丢失,它将继承当前页面使用的CSS。

这几乎就像我想让它像iframe一样工作,但我不想使用iframe,我只是希望能够在与我的前端相同的页面中包含远程“网站”。 / p>

4 个答案:

答案 0 :(得分:0)

通常,解决方案是解析源代码并自行修复链接。虽然我仍然倾向于使用iframe - 这就是他们有用的东西。

答案 1 :(得分:0)

我实际上能够自己解决这个问题。虽然它不是很好的PHP实践/安全性,但我在php.ini中启用了allow_url_include并解决了这个问题。同样,这可能会重新实现,但是,包含的URL是我们组织内部的简单网站/ URL,也无法在我们的网络外访问。

答案 2 :(得分:0)

你必须重写其他页面以获得所有包含的资源[css,js等]的绝对链接,除此之外,你可以非常透明地查看iframe,查看http://api.fatherstorm.com/test/我在哪里做jQuery魔术可以在点击事件上附加页面,而无法告诉他们是否在iframe中。

答案 3 :(得分:0)

<HTML>
<HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <META http-equiv="Cache-Control" content="no-cache">
     <meta http-equiv="Description" name="Description" content="">
     <meta http-equiv="Keywords" name="Keywords" content="">
     <TITLE>Title</TITLE>
</HEAD>
<FRAMESET rows="*,0">
    <FRAME src="http://url/folder" frameborder="0" noresize>
    <NOFRAMES>
       Your browser does not support frames.
    </NOFRAMES>
</FRAMESET>
</HTML>