php - javascript 问题,通过 <php echo ?> 发布到 facebook API,需要转义 ' and "

标签 php javascript escaping

我已经尝试修复这个问题几个小时了,我似乎无法成功,这是我的 JS

var obj = {
    method: 'feed',
    link: 'http://www.myDomain.com/words/?w=<?php echo urlencode($facebookNoEscape['searchWord']) ?>',
    picture: 'http://www.myDomain.com/actions/image.php?img=<?php echo urlencode($image_word) ?>&dir=thumbs',
    name: '<?php echo $facebookNoEscape['word'] ?>',
    caption: 'Author: <?php echo $facebookNoEscape['nickname']?>',
    description: '<?php echo $facebookNoEscape['definition']?>'
};

注意:这些值可以包含“/或'/,因为我在插入过程中允许两者,并且它们在插入过程中被 mysqli_real_escape_string 转义。

如您所见,我将来自 MySQL 数据库的值回显到对象中,现在结果是这样的

SyntaxError: unterminated string literal
description: 'Well, personal favorite in the following order.
all.js (line 27, col 15)

字符串以 ' 开头

我尝试过 json_encode,并且部分有效,我没有遇到这个问题,但是,我不能使用像这样的图像链接:

'http://www.myDomain.com/actions/image.php?img=<?php echo urlencode($image_word) ?>&dir=thumbs'

结果如下:

http://www.myDomain.com/actions/image.php?img="someImage"&dir=thumbs

注意“someImage”括号不应该在那里。

所有其他回显的单词都用“”括起来。

有什么建议吗?

编辑:输出

 var obj = {
method: 'feed',
link: 'http://www.funkydictionary.com/words/?w=facebook%3D1',
picture: 'http://www.funkydictionary.com/actions/image.php?img=FunkyDictionary-            Facebook1-image.jpg&dir=thumbs',
name: 'Facebook',
caption: 'Author: bill',
description: 'Well, personal favorite in the following order.
1. A stalkers dream come true
2. The reason most work are never done on time. 

最后一行被什么东西打断了,然后就溢出了

最佳答案

像这样构建 JS 代码并不是一个好主意。它几乎总是会导致错误。

相反,您应该在 PHP 中构建数组,然后使用 PHP 的 json_encode() 函数输出它,如下所示:

<?php
$jsObj = array(
    'method' => 'feed',
    'link' => 'http://www.myDomain.com/words/?w='.urlencode($facebookNoEscape['searchWord']),
    'picture' => 'http://www.myDomain.com/actions/image.php?img='.urlencode($image_word).'&dir=thumbs',
    'name' => $facebookNoEscape['word'],
    'caption' => 'Author: '.$facebookNoEscape['nickname'],
    'description' => $facebookNoEscape['definition']
);
echo "var obj = ".json_encode($jsObj).';';
?>

这样,PHP 将为您执行所有正确的转义,为您提供有效的 Javascript 字符串。这是从 PHP 输出所有 JSON 或 Javascript 数据的正确方法。

关于php - javascript 问题,通过 <php echo ?> 发布到 facebook API,需要转义 ' and ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16796719/

相关文章:

javascript - rails 5.2 : Issue with jquery-rails

javascript - jQuery 与 WebSocket

php - Laravel - Eloquent 子查询选择独立于模型场景

php - Joomla 数据库以及如何提取数据

javascript - 使用javascript获取CSS样式属性

javascript - 在普通 javascript 中使用 jQuery 的 append 方法,必须运行 Javascript 代码

mysql - 如何查询MySQL中包含空字符的字段

java - char 文字 '\"' 与 '"' 相同吗?(反斜杠双引号与仅双引号)

php - 为查询准备用户定义的搜索词

javascript - 社交引擎上的自动完成好友列表无法正常工作