【问题标题】:PHP/ Javascript inserting html with ' and " to a javascript function from PHPPHP / Javascript将带有'和'的html插入PHP的javascript函数
【发布时间】:2011-03-06 10:49:04
【问题描述】:

我在一个数据库中有 HTML,我想用 facebox(jquery 弹出窗口)显示它。 我使用下面的 PHP 代码来呈现启动 facebox 的按钮

$html.="<img onclick='$.facebox(\"".$db_data[html]."\");' src='img.png' />";

我怎样才能正确地转义,以便 facebox 在 $db_data[html] 中也能得到 ' 和 "? (例如,如果 html 包含样式?)

【问题讨论】:

    标签: php javascript jquery html escaping


    【解决方案1】:

    使用json_encode 将字符串正确转换为与JavaScript 兼容的字符串,并使用htmlspecialchars 对其进行编码以便在HTML 属性值中使用:

    "<img onclick='" . htmlspecialchars("$.facebox(".json_encode($db_data['html']).");", ENT_QUOTES) . "' src='img.png' />"
    

    注意使用引号样式 ENT_QUOTES 来编码用于引用属性值的'。如果您将 " 用于 HTML 属性值,则不需要这样做:

    '<img onclick="' . htmlspecialchars("$.facebox(".json_encode($db_data['html']).");") . '" src="img.png" />'
    

    【讨论】:

    • 非常感谢!正是我想要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2011-04-24
    • 1970-01-01
    • 2013-08-31
    • 2016-10-21
    • 2012-03-28
    • 2010-09-18
    相关资源
    最近更新 更多