php - 如何在java脚本onclick标识符中安全地回显php字符串

标签 php javascript

请不要将其标记为重复,因为我找不到针对非常相似的问题的有效解决方案。他们似乎都没有修复我的特定字符串。

我有这个 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/

相关文章:

javascript - 语法错误: Unexpected token { in javascript

PHP:在异常中,异常代码的用途是什么?

php - mssql_fetch_object 文本字符限制?

PHP 邮件功能在 Hostgator 上不起作用

javascript - 按下按钮时递增或递减

javascript - Sails + ReactJS : Unexpected token, 找不到原因

javascript - paulirish/infinite-scroll 正在加载错误的页面

php - Googlemail.com/gmail.com 电子邮件规范化

javascript - 正则表达式接受正数和负数

javascript - 返回数组平方中所有偶数的总和 (javascript)