【发布时间】:2022-01-04 14:38:20
【问题描述】:
考虑以下 PHP 函数:
function show_html_comment($comment)
{
echo '<!-- ' . $comment . ' -->';
}
此函数显示 HTML cmets。
但是如果$comment 里面有一个 HTML 注释呢?
$comment = '<!-- foo -->';
函数的结果是:
<!-- <!-- foo --> -->
我不希望那样。我也不应该显示字符串的修改版本(例如使用 htmlspecialchars())。我必须在 HTML 注释中显示字符串。
谁能提出解决方案?
【问题讨论】:
-
htmlspecialchars()例如:echo '<!-- ' . htmlspecialchars($comment, ENT_QUOTES) . ' -->'; -
我无法显示修改后的字符串。所以我想到了这个解决方案:插入特殊字符。例如:--[SPECIAL CHAR HERE]> 因此浏览器不会检测到它是注释结束标记。但我必须测试它。
-
请在更新的问题描述中显示您的“修改后的字符串”
-
我能想到的另一个解决方案是将 替换为 [!-- --] 或类似的 Unicode 字符,这可能是一个可以接受的解决方案。