Javascript PHP不检查脚本文件
我有一个php文件,其中包含一个javascript对象(部分由php响应)。该文件由以下程序调用:Javascript PHP不检查脚本文件,javascript,php,html,Javascript,Php,Html,我有一个php文件,其中包含一个javascript对象(部分由php响应)。该文件由以下程序调用: <script src="js/file.php"></script> 文件内容基本如下: <?php header('Content-Type: text/javascript'); $custom_icons = JSON_encode($object); ?> var JSON_icons = <?php echo $custom_icon
<script src="js/file.php"></script>
文件内容基本如下:
<?php
header('Content-Type: text/javascript');
$custom_icons = JSON_encode($object);
?>
var JSON_icons = <?php echo $custom_icons ?>;
var icons = JSON_icons + {
"facebook": {'name': 'facebook', 'text': 'Facebook', 'icon_url': 'img/logos/facebook.png', 'url': 'http://www.facebook.com'}
};
var JSON_icons=;
var icons=JSON_icons+{
“facebook:{'name':'facebook','text':'facebook','icon_url':'img/logos/facebook.png','url':'http://www.facebook.com'}
};
请忽略由于脚本缩短而可能出现的任何编码/语法错误。我遇到的问题是,调用脚本时,javascript会抛出错误:
Uncaught SyntaxError: Unexpected token <
未捕获的语法错误:意外标记<
这基本上意味着php没有遍历文件并打印它应该打印的内容。它基本上保持了文件不变,php代码保持不变
我怎样才能解决这个问题?我在这里真的迷路了
谢谢大家!
更新:PHP实际检查了文件,发现了一些错误,并使用html元素进行了相应的响应。无效的“我认为问题在于:
var icons = JSON_icons + {
"facebook": {'name': 'facebook', 'text': 'Facebook', 'icon_url': 'img/logos/facebook.png', 'url': 'http://www.facebook.com'}
};
因为
JSON\u encode($object)
会产生一个以{
开头,以}
结尾的字符串,所以您的结果会包含。。。JSON_icons+{…
导致..}{…
这会导致意外的令牌错误。对不起,我的坏.PHP会检查文件。无效的令牌实际上是PHP打印的错误消息的一部分。如果通过浏览器访问file.PHP,下面是它的样子:
<br />
<b>Notice</b>: Undefined variable: icons in <b>C:\...\js\file.php</b> on line <b>42</b><br />
var JSON_icons = null;
...
var icons = custom_icons + {
"facebook": {'name': 'facebook', 'text': 'Facebook', 'icon_url': 'img/logos/facebook.png', 'url': 'http://www.facebook.com'}, ...
};
注意:未定义变量:第42行C:\…\js\file.php中的图标
var JSON_icons=null;
...
变量图标=自定义图标+{
“facebook:{'name':'facebook','text':'facebook','icon_url':'img/logos/facebook.png','url':'http://www.facebook.com'}, ...
};
谢谢,@SblsTry
var-JSON\u-icons='';
file.php的实际输出是什么?@ShankarDamodaran-JSON\u-encode生成一个符合有效对象语法的字符串{“a”:1,“b”:2}
因此,如果在对象周围加引号,则需要对其进行解析var\u-icons=JSON.parse('')
这是毫无意义的–请也显示生成的输出。我猜生成的PHP中有一些错误、警告或通知。如果您启用了错误报告,它们将在输出中呈现为HTML。检查生成的PHP并确保这是合法的JavaScript。