“用require()语句包含的*.inc中的部分文件代码,这些文件代码若不调用,将会停止运行。”===========到这有点糊涂了,不被调用,肯定是停止执行了,那作者在这里提到这个是什么意思? 莫非有代买不被调用的还继续执行的代码?? 若有请大家给举个例子。“还有一个常用的好办法就是:将包含文件放在一个脚本可读的目录中,但不允许包含文件通过web服务器自行载入---------也就是,放在web文档树之外”=========到这,自己理解web文档树应该是个存放脚本的目录,一般在apache的htdocs\下,而*.inc通常在include\目录下,这里所说的web文档树怎么理解?  那放在web文档树之外又是哪呢?假如在htdocs目录下 有主要的php脚本,这些脚本调用的*.inc在htdocs/include/目录下
那所谓的'web文档树' 具体是啥呢? 这里说到的好办法:不允许包含文件通过web服务器自行载入.   不是调用有两种么?一种是用require()另一种是在配置文件设置,那为啥作者还说不允许它自动载入? 它怎么个自行载入? 不是*.inc都得调用或通过配置文件才能载入么?莫非还有第三种载入*.inc方法? 这段话确实很困惑。
请大家写个例子,谢谢了。

解决方案 »

  1.   

    第一句话估计是指 require() 的文件不存在的话, 会报fatal错, 代码自然就停止运行了, 而include只报warning, 不停止运行第二句话指, 被require的文件, 可以放在 web 根目录以外, 比如 根目录为 /var/www/htdocs/   可以放在 /var/www, 
    这样做的好处是别人无法通过web直接访问此文件, 
    如果放在 /var/www/htdocs/include/, 可以通过 http://include/xxx.inc 来访问, 如果你的代码没有考虑到这种情况, 可能会出现问题
      

  2.   

    小技巧:将.inc文件改名为.inc.php
    一般在inc文件里都是定义一些参数的,所以别人就算通过http访问了这个文件,也不会有任何的输出。