我正在尝试做一些我认为很简单的事情,但似乎不是这样。
我想要的是能够在我的PHP代码中包含一个单独的网站。基本上,原因是我正在写一个“主”页面上有链接,而在我的链接下面是同一页面中的“包含”网站。推理是,我只是为所有用户建立一个简单的“主要”位置来获取我们的工具。问题是,我们的工具跨越了其他几个网站(我们网络的所有本地和内部)。在PHP中,我不确定你能做到这一点,“执行此操作”的方法是使用file_get_contents()
来获取远程站点的内容:
<?php
$a = file_get_contents("http://url/folder");
echo ($a);
?>
这个解决方案的问题在于CSS文件的所有包含和引用现在都被破坏了,因为我相信,file_get_contents()
它只会带来本已生成的源代码,因此链接CSS代码将丢失,它将继承当前页面使用的CSS。
这几乎就像我想让它像iframe一样工作,但我不想使用iframe,我只是希望能够在与我的前端相同的页面中包含远程“网站”。 / p>
答案 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>