从SQL数据库填充Facebook Feed对话框

时间:2013-07-01 15:38:31

标签: php javascript facebook dialog feed

是否可以使用以安全的方式从SQL数据库中获取的PHP变量动态填充Facebook Feed对话框?

    ...
    // calling the API ...
    var obj = {
      method: 'feed',
      redirect_uri: 'YOUR URL HERE',
      link: 'https://developers.facebook.com/docs/reference/dialogs/',
      picture: 'http://fbrell.com/f8.jpg',
      name: 'Facebook Dialogs',
      caption: 'Reference Documentation',
      description: 'Using Dialogs to interact with people.'
    };
    ...

我想这就是例如:

    name: '<?php echo $name; ?>', etc..

应该是可能的..但是,如果名称包含'字符?与描述相同的是,因为那可能包含可能破坏javascript代码的不同特殊字符。

我怎样才能避免这种情况,或者是否有一个“纯粹的”基于php的方法来填充Feed对话框,其数据库内容为图像,名称,描述等。

1 个答案:

答案 0 :(得分:1)

您想要生成一个javascript对象,最简单的方法是使用json_encode(),它将为您处理所有的转义:

<?php
$fb_feed = array(
  'name' => $name,
  'method' => 'feed',
  ...
);
?>
var obj = <?php echo json_encode($fb_feed) ?>;

请注意,如果由于某种原因您不想生成这样的整个对象,您也可以将它与单个字段一起使用:

var obj = {
      method: 'feed',
      name: <?php echo json_encode($name) ?>,
      ...
}