在 php 文件中包含一个网站
Posted
技术标签:
【中文标题】在 php 文件中包含一个网站【英文标题】:include a website in php file 【发布时间】:2011-03-14 13:41:53 【问题描述】:您好,我正在尝试将另一个网站的网页链接包含到我的网站中。 我该怎么做?
我试过了
<?php web_include ('http://website.com/website.html') ; ?>
但是在此语句之后没有加载所有命令。我想将另一个网页直接包含到我的主页中。我的主页完全是用php设计的,但另一个是html或php。
我也试过<?php include("http://www.othersite.com/filename.html"); ?>
,但这个 html 根本没有加载。
可能的解决方案: 好的,这就是我正在使用的
<iframe name="FRAMENAME" src="http://website.com/dropdown.html" width="1000" style="z-index:10000" height="40" frameborder="0" scrolling="no" allowautotransparency=true></iframe>
我只是为我的索引页添加了一个下拉菜单。我网站的 CMS 限制我在 IE 中查看 dorpdown。当我查看 dropdown.html 页面时,我可以看到下拉列表,所以我正在尝试使用 iframe。现在使用 iframe 我也可以在 IE 中看到下拉菜单,但下拉菜单没有显示在顶部。它显示在网站上其他图像的后面。我如何将它放在其他图像之上。 z-index 不适用于此。
【问题讨论】:
你为什么要这样做?如果要显示其他页面的内容,请使用<iframe/>
。
根据您在“答案”中提供的信息,您似乎在尝试添加来自其他网站的菜单,或者其他什么?我对整个计划持怀疑态度。获取页面、解析数据并以您可以控制的方式将其呈现在您的页面中可能会更好。
另一种解决方案,只是为了让您知道,是使用 jQuery 和它的 load() 函数在您自己的 html 中显示远程页面的任意部分。尽管使用该方法也需要注意 XSS 风险。
【参考方案1】:
此代码在您的 php.ini 中需要 allow_url_include=On
,默认情况下禁用它,因为它是 REMOTE CODE EXECUTION,这是您在 PHP 中可能遇到的最糟糕的情况之一。这称为Remote File Include (RFI) 漏洞。如果此站点上有 PHP 代码,它将在您的服务器上执行。
极度不安全:
<?php include("http://www.othersite.com/filename.html"); ?>
你可能想要的是:
<?php print file_get_contents("http://www.othersite.com/filename.html"); ?>
但是,从技术上讲,这是一个 XSS 漏洞。因此,如果您信任该网站,则没有问题。但是你可能想在打印出来之前运行Html Purifer。
【讨论】:
确定不是allow_url_include
?我找不到任何remote_includes
。【参考方案2】:
只是一个基本建议,但听起来您是在尝试在复杂环境中调试复杂功能,这只会使其变得更加困难。
如果您将其分解为组件步骤,则调试会更容易。在这种情况下,我建议:
在空白 html 页面上显示 iframe。 确保在这种简单的情况下一切正常。
在更复杂的页面上显示。
如果仍然无法正常工作,请将复杂页面上的 javascript 注释掉,以确定这是否会导致与 iframe 页面的 javascript 发生不良交互。
像这样逐步进行调试应该可以简化过程。
【讨论】:
以上是关于在 php 文件中包含一个网站的主要内容,如果未能解决你的问题,请参考以下文章