[英]How can I limit HTML Tags to a Div?
如果将内容嵌入HTML中,如何确保该内容中的任何HTML仅影响嵌入的内容?
例如:
<strong>Hello this is a code,<br>,<i>Yeah,...
当我嵌入该内容时,该内容之后页面上的所有内容都将被设置样式,因为该内容包含不带关闭标签的打开标签( </strong>
, </i>
)
如何限制这些标签的作用?
我不介意带有标签的内容,但我希望它们仅影响内容,而不影响内容嵌入的页面的其余部分。
PHP允许“自动关闭标签”,但是我想要jQuery或PHP中一种安全的方法来将HTML限制在页面上的某个区域。
HTML本质上仅允许div中的HTML标签。 这些标签将始终能够在其中包含内容。 例如,如果您尝试输出到div中,例如:
<br /><br /><span>Malicious <?php include('malicious.php'); /> file!</span>
HTML会将div
标记内的所有内容呈现为HTML 或原始文本,并且仅尝试呈现可识别为有效HTML的任何内容。
它将通过以下方式加载到DOM中:
<div><br /><br /><span>Malicious <?php include('malicious.php'); /> file!</span></div>
它会在页面上显示为:
Malicious <?php include('malicious.php'); /> file!
通过PHP中的“自动关闭标签”,我认为您的意思是:
<?php
$fragment = '<p>Opened paragraph <a href="#">opened linked';
$tidy = new tidy();
$tidy->parseString($fragment,array('show-body-only'=>true),'utf8');
$tidy->cleanRepair();
echo $tidy;
?>
如果您用PHP强制关闭标签,则它们将以相反的顺序正确地输出到HTML中:
<p>Opened paragraph <a href="#">opened linked</a></p>
希望这可以帮助 :)
您无法使用HTML或CSS做您想做的事情-您需要可以解析内容中的任何HTML并关闭任何打开的标签或您自己的东西,例如Obsidian Age给出的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.