请不要将其标记为重复,因为我找不到针对非常相似的问题的有效解决方案。他们似乎都没有修复我的特定字符串。
我有这个 PHP 变量...
<?php
$og_description = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus hendrerit cursus mi, Nullam condi\'mentum posuere odio sed cursus.. Proin posue\'re fermentum, ligula vel lacinia sollicitudin, libero quam ultrices quam, quis tristique orci... enim a justo!'
?>
上面的字符串与我正在使用的特殊字符完全相同。
然后我尝试将其回显到此 onclick 标识符中。显然<?php echo $og_description; ?>
本身无法工作。
<a href="#" onclick="fb_publish('<?php echo $fb_app_url; ?>','<?php echo $og_title; ?>','images/icon.png','<?php echo $og_description; ?>'); return false;">Post to wall</a>
我已经尝试过这些...
echo htmlspecialchars($og_description);
echo json_encode($og_description);
还有其他一些,但似乎没有什么可以将我的字符串修复为不会破坏标识符数组的格式。
有人知道我该如何解决这个问题吗?
谢谢 乔什
最佳答案
我不建议使用内联 JavaScript,但这是一种方法:
$anchor_fmt = '<a href="#" onclick="fb_publish.apply(window, %s);return false;">Post to wall</a>';
$js_args = array(
$fb_app_url,
$og_title,
'images/icon.png',
$og_description
);
echo sprintf($anchor_fmt,
htmlspecialchars(json_encode($js_args), ENT_QUOTES, 'UTF-8')
);
它使用 json_encode()
形成一个数组,该数组使用 .apply()
传递给 JavaScript 函数。最后,您需要确保生成的字符串在 HTML 上下文中仍然有效。
顺便说一句,它可以完全写在一行中,但为了便于阅读,我将其分开。
关于php - 如何在java脚本onclick标识符中安全地回显php字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16647160/