描述:一个ThinkPHP编写的网站,其中一个index.html页面,其中在script中嵌入了php脚本,比如:
var classname=<?php echo ($classname); ?>;
出现了错误:syntax error, unexpected '?', expecting end of file
回溯:因为之前使用phpStorm修改了该文件,并习惯性用快捷键Ctrl+Alt+L格式化了代码,当时未进行即时调试,又去修改了其他文件,前后一共修改了几个文件。第二天,运行代码时,出现上述错误,反复调试多次,没有解决。
解决:首先是在本地调试(在服务器上不会显示出错文件及代码所在行数),根据出错的缓存文件,发现居然是之前经过格式化的index.html页面,而且,类似上面这行代码变成了如下格式:
var jscourse = <{$jscourse
}>
;
或者如下:
var jscourse = <?php {$jscourse
} ?
>
;
看着就不正常的样子。于是,手动修改成正常的格式。再次运行代码,正常了。看来格式化代码时,按照html格式了,并没有考虑嵌入php的格式,以后要注意这一点。
终极:如果使用html时嵌入了php代码,此时用双引号将其包括起来,则再用上述快捷键格式化代码时,就不会出现问题了,比如这样:
var classname="<?php echo ($classname); ?>";
另外:如果修改多个页面后,在本地无问题,上传到服务器网页丢失,但不显示任何错误,此时可能漏传了一个网页。比如stuadd.html需要调用function.php中的函数,但是未上传function.php,点击stuadd.html就是页面丢失,很难找到出错原因。