将 HTML 实体作为函数参数传递


passing html entities as function parameters

<?php
$var1 = str_replace(''n', "<br/>", $var1);
$var2 = str_replace(''n', "<br/>", $var2);
$var3 = str_replace(''n', "<br/>", $var3);
/*
$var1 = nl2br($var1);
$var2 = nl2br($var2);
$var3 = nl2br($var3);
*/
?>
<a href="javascript:" class="history_link" style="color:<?php echo $color; ?>" onclick="showPopUpWindow(
   '<?php echo htmlentities($var1, ENT_QUOTES); ?>',
   '<?php echo htmlentities($var2, ENT_QUOTES); ?>',
   '<?php echo htmlentities($var3, ENT_QUOTES); ?>'
   );">

的情况是这样的:我有一些来自数据库的文本,我需要使用标签的 onclick 事件将其作为参数传递给 JS 函数(我知道这很糟糕,但我正在处理一个随机自由职业者的代码从 4 年前,我别无选择)。我不知道文本包含什么。它可能有特殊的字符($,#,%,%,",'等),它可能包含HTML标签。我尝试使用 htmlentities nl2br,用 br (str_replace) 替换 nl,将 onclick 事件的引号更改为单和双,但它不起作用。我必须传递 3 个参数。

这是我代码的一部分。任何帮助将不胜感激。

你试过json_encode吗?

<a href="javascript:" class="history_link" style="color:<?php echo $color; ?>" onclick="showPopUpWindow(
   <?php echo json_encode($var1); ?>,
   <?php echo json_encode($var2); ?>,
   <?php echo json_encode($var3); ?>
   );">