Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML内部的HTML相互影响_Php_Css_Html_Styles - Fatal编程技术网

Php HTML内部的HTML相互影响

Php HTML内部的HTML相互影响,php,css,html,styles,Php,Css,Html,Styles,我已经研究了一些关于我的问题的其他建议,主要的建议是使用iframe 然而!我不想使用iframe。关于这个问题: 基本上,我正在用PHP为一个大学团队项目制作一个基于web的电子邮件客户端,我在HTML电子邮件方面遇到了一些问题。。。在最终正确处理电子邮件后,我浏览了几封电子邮件,发现其中一封,电子邮件的背景影响了网站正文标签上的背景颜色 我看了一下原始的邮件正文,它就像一个普通的HTML文件,邮件中的body标签上有一些CSS样式(包括背景颜色),因此从某种程度上来说,邮件中的body样式被

我已经研究了一些关于我的问题的其他建议,主要的建议是使用iframe

然而!我不想使用iframe。关于这个问题:

基本上,我正在用PHP为一个大学团队项目制作一个基于web的电子邮件客户端,我在HTML电子邮件方面遇到了一些问题。。。在最终正确处理电子邮件后,我浏览了几封电子邮件,发现其中一封,电子邮件的背景影响了网站正文标签上的背景颜色

我看了一下原始的邮件正文,它就像一个普通的HTML文件,邮件中的body标签上有一些CSS样式(包括背景颜色),因此从某种程度上来说,邮件中的body样式被应用到我的页面正文中

本质上,我需要知道的是,除了使用iframe之外,是否还有其他方法可以阻止代码影响包含消息体的div之外的任何内容


谢谢

我会说不——或者没有好办法。我刚刚检查了yahoo mail,他们也在使用iframe来处理电子邮件。我想他们有更多的时间来考虑:-)

我会说不——或者没有好办法。我刚刚检查了yahoo mail,他们也在使用iframe来处理电子邮件。我想他们有更多的时间来考虑:——)

本质上,我需要知道的是,除了使用iframe之外,是否还有其他方法可以阻止代码影响包含消息体的div之外的任何内容

当然,您可以使用javascript编写自己的HTML解析器,将输出呈现到画布上(例如,like)。好吧,如果你有太多的时间;)

事实上,我觉得iframe更实用。否则,将HTML电子邮件转换为纯文本电子邮件。这些很容易显示(您可以提供在新选项卡中显示HTML内容)

本质上,我需要知道的是,除了使用iframe之外,是否还有其他方法可以阻止代码影响包含消息体的div之外的任何内容

当然,您可以使用javascript编写自己的HTML解析器,将输出呈现到画布上(例如,like)。好吧,如果你有太多的时间;)


事实上,我觉得iframe更实用。否则,将HTML电子邮件转换为纯文本电子邮件。这些内容很容易显示(您可以在新选项卡中显示HTML内容)。

我实际上已经大致了解了这一点,这可能对其他人有所帮助,所以

我更深入地研究了gmail是如何做到这一点的。。。他们实际上把body标签转换成div标签

$body = str_replace(array("<body ","</body>"),array("<div ","</div>"),$body);

$body=str\u replace(array)(“我实际上已经大致了解了这一点,这可能对其他人有帮助,所以

我更深入地研究了gmail是如何做到这一点的…他们实际上把body标签转换成div标签

$body = str_replace(array("<body ","</body>"),array("<div ","</div>"),$body);

$body=str_replace(array)(这是一个非常有趣的问题,我真的考虑过它,实际上我认为我们可以使用javascript解决它,如下所示:

<html>
  <head></head>
  <body>
    <div id='email'>
      <!--here we the HTML code of the new page should be placed-->
    </div>
  </body>
</html>

希望这是有帮助的…祝你好运,这是一个非常有趣的问题,我真的想到了,实际上我认为我们可以使用javascript解决它,如下所示:

<html>
  <head></head>
  <body>
    <div id='email'>
      <!--here we the HTML code of the new page should be placed-->
    </div>
  </body>
</html>

希望这是有用的…祝你好运

iframe似乎是你最好的选择。iframe似乎是你最好的选择。它听起来不那么简单。更好的解决方案是使用iframe,我想。更好的解决方案是使用iframe,我想。如果你使用这种替代,更好的选择是使用iframeHTML净化器,并将父标记设置为
。毕竟,不能相信传入的HTML能够安全地抵御XSS攻击。如果您使用这种替换,更好的选择是使用HTML净化器,并将父标记设置为
。毕竟,不能相信传入的HTML能够安全地抵御XSS攻击。