问题与javascript,发布到facebook API,通过<php echo ?>,需要转义'和“
Issues with javascript, posting to facebook API, via <php echo ?>, need to escape ' and "
我一直在试图修复这个几个小时,我似乎不能成功地做到这一点,这是我的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数据的正确方法。
如果你回显的内容中有单引号,它会破坏你的javascript。你需要使用地址斜杠转义你的引号:
description: '<?php echo addslashes($facebookNoEscape['definition']) ?>'
相关文章:
- 在JavaScript中输出转义字符
- 转义符不能与innerHTML一起使用
- Rails 3.2 js.erb文件转义js
- 转义在jsp's脚本
- 使用Jinja2的JavaScript转义字符串
- 将c#视图模型转换为javascript模型时转义HTML标记
- Rails:如何在浏览器中显示动态html内容,而不会对其进行转义,也不会引起XSS攻击
- 删除单引号字符转义
- 如何使用javascript/jquery更改转义键的功能
- 包含转义符号的正则表达式
- 在RegEx(JavaScript)中正确转义变量
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 如何转义字符串中的html实体
- Regex以转义HTML标记
- Javascript-转义特定字符
- 正在转义javascript数组中的html字符
- “转义字符串”在Regex中是什么意思?(Javascript)
- 如何在javascript的echo中转义html
- 如何用javascript在echo中转义php代码