Php 如何获取接受单个报价的代码行

Php 如何获取接受单个报价的代码行,php,javascript,Php,Javascript,由于一个单引号,我收到一个(预期)后参数列表错误: window.top.stopAudioUpload(1, '43', 'Thorne, Grandma's Goodbye excerpt.m4a'); audioupload.php (line 11, col 54) 我的问题是如何获得接受单报价的代码行 代码: window.top.stopAudioUpload(,'',''); Try\escape字符 “索恩,奶奶的再见摘录.m4a”试试这个: <script type

由于一个单引号,我收到一个(预期)后参数列表错误:

window.top.stopAudioUpload(1, '43', 'Thorne, Grandma's Goodbye excerpt.m4a');

audioupload.php (line 11, col 54)
我的问题是如何获得接受单报价的代码行

代码:


window.top.stopAudioUpload(,'','');
Try\escape字符 “索恩,奶奶的再见摘录.m4a”

试试这个:

<script type="text/javascript">
top.stopAudioUpload(
  <?php echo json_encode($result); ?>,
  <?php echo json_encode($id); ?>,
  <?php echo json_encode($_FILES['fileAudio']['name']); ?>
);
</script>

top.stopAudioUpload(
,
,
);

请注意缺少引号-这一点很重要,因为
json_encode
将在需要时自动添加这些引号。

您可以尝试使用反斜杠
Thorn,grandman's bye extract.m4a
手动转义单引号,也可以使用转义功能-请参阅此处的文档:

您的问题在于:

window.top.stopAudioUpload(,'','')


更改
周围的单引号您是否尝试过使用双引号?比如:
@darkajax那么如果名称包含双引号呢?@Kolink很好,我对你的答案进行了改进,因为它确实有意义,但这取决于信息的类型,考虑到字段是一个文件名,我想它不太可能包含双引号…@VisioN-Huh?你在说什么
json_encode
是一种将PHP变量放入JavaScript上下文的方法,可以是字符串、整数、浮点、数组,甚至对象。啊,是的,我的错。忘记了
json\u encode
并不总是返回字符串。说什么
string json_encode(mixed$value[,int$options=0])
关键是
json_encode
返回json,这是一个表示对象的字符串…@Kolink Perfect,了解了一些关于json_encode的知识,谢谢:)@Kolink这是让我困惑的地方:。因此,如果它确实总是返回字符串,那么我的第一个(删除的)注释是正确的:如果只有
$result
应该是字符串:在OP的代码中
stopAudioUpload
的第一个参数是整数,不是字符串。你到底为什么建议使用MySQL函数在JavaScript中放置字符串?@WolfmanJoe
htmlspecialchars
不会为你转义单引号(或&apos;)仅当设置了ENT_引号时你不能只说“你的问题就在这里”,然后从问题中引用代码的完整性…我清楚地在这里把单引号称为问题
<script type="text/javascript">
top.stopAudioUpload(
  <?php echo json_encode($result); ?>,
  <?php echo json_encode($id); ?>,
  <?php echo json_encode($_FILES['fileAudio']['name']); ?>
);
</script>