在字符串中使用html - 需要使用代码将其显示为单独的html页面

时间:2010-07-10 11:51:24

标签: php html iframe

我有一个脚本,可以从用户那里获取用户的html,也可以通过curl或电子邮件从用户那里获取整页html。问题是我在字符串中有html但在同一页面上我需要在单独的iframe中显示htmnl。我不想在teh iframe引用的页面中重新输入任何数据库,curl或imap代码 - 有没有办法让我以某种方式显示传递给url的html?就像在get变量中一样..这里的html可能很大......对不起,如果听起来很奇怪。

4 个答案:

答案 0 :(得分:1)

您可以将抓取的html放入临时文件中,并将该临时文件的链接放入iframe的src=""

使用tempnam()创建它们,然后创建一个小脚本,获取(最好是模糊的)文件名,如果它真的是你创建的临时文件,只需将其打印出来。

小心!如果它没有很好地检查文件名,那么您将获得对服务器的完全读取权限...将该脚本的链接放在iframe的src中。您也可以在www服务器的公共文件夹中创建临时文件,但我不希望那里有临时/垃圾。

答案 1 :(得分:0)

如果我没有误解你的问题

您可以将字符串放在表单内的textarea中并提交表单..

接收页面将读取发布的数据并在页面上呈现..

答案 2 :(得分:0)

我不太确定你想做什么,让你可以随时将字符串作为POST变量发布,不限制它们的长度。

答案 3 :(得分:-1)

您可以使用urlencode对HTML片段进行编码,并在使用$_GET进行检索时自动解码,或者您可以使用例如base64_encodebase64_decode。问题是$_GET$_POST有限制。两者都可以在配置设置中设置,但是通过URL发送大量数据实际上并没有完成,因为这不是应该如何使用的。

但如果我正确阅读了您的问题,您可以在页面顶部抓取HTML,然后将其加载到iframe中吗?

if ($_GET['url']) {
  $html = file($_GET['url']);
}
if ($_POST['html']) {
  $html = $_POST['html'];
}

然后加入它:

<html>
..
<iframe ..><php echo $html; ?></iframe>
..
</html>