在之前我们在写代码的时候经常会看到:函数名写错了,忘加分号了,函数被重新定义了都会报各种不同样的错。 在开发中,显示错误对我们的开发非常有利。因为,显示错误后能帮我们快速定位错误、解决问题。 而在生产环境(即公网)给其他人访问的的网站、微网站、手机网站、手机接口等等。 如果错误显示出来了,就容易暴露: 1. 服务器的文件路径和文件存储规范 2. 有些人喜欢用个人名命名,通过社会工程学可以反向推理出密码 3. 有时还会暴露mysql数据库服务器的地址 ... ... 等等 上面这些信息特别容易被网上别有用心的一些人给利用。 例如下面这段代码,我们不加分号就全面暴露了我们的服务器端文件存放路径、框架信息等。如下: ~~~ <?php $fp = fopen('abc.txt','a+') fwrite($fp,'abc'); fclose($fp); ?> ~~~ 报错了: ![document/2015-09-22/560126786806a](http://box.kancloud.cn/document_2015-09-22_560126786806a.png) 错误提示中文翻译过来为: 解析错误:语法错误。意外发生在/home/vagrant/Code/Laravel/public/index.php 文件的第5行fwrite附近。 ###那,我们该如何解决了? ——这就需要学习我们的错误处理章节。