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

时间:2012-05-28 08:00:43

标签: php html-entities

<?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替换nl(str_replace),将onclick事件的引号更改为单个和加倍,但它不起作用。 我必须通过3个参数。

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

1 个答案:

答案 0 :(得分:0)

您是否尝试过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); ?>
   );">