• 13)PHP,文件加载(include和require)


    有四种文件加载的语法形式(注意,不是函数):

       include,  include_once,  require, require_once;

    1 他们的本质是一样的,都是用于加载/引入/包含/载入一个外部文件到当前php代码中来。
    2 他们只在2个方面有细微区别:
    3 1,如果加载文件失败,则有不同的处理规则;include和require不同
    4 2,如果加载文件重复,则有不同的处理规则;XXX和XXX_once不同;
    5 3,他们都是语法结构,而非函数,使用形式可以有两种:
    6 3.1  include  ‘文件路径’;
    7 3.2  include (‘文件路径’);

     文件的路径问题:

      

    相对路径:

            就是以“./”, 或“../”,开头的路径。

        ./     表示当前网页文件的所在位置(文件夹,目录);

        ../    表示当前网页文件的所在位置的上一级位置(文件夹,目录)

        这种相对位置对一个网站中的所有内容(包括php,html,图片,css,js文件)都有效。

    绝对路径:

            有2种绝对路径:

          本地绝对路径:

            window系统:      c:/d1/d2/page3.php

            unix系列系统:    /d1/d2/page3.php

            网络绝对路径:    http://www.abc.com/d1/d2/page4.php

    只有文件名(无路径)

          在php的include语法(其他3个也一样)中,如果只给出文件名,而没有给出路径,则此时有其内部找到该文件的规则,如下:

              1,首先在系统设置的include目录中查找:

                  在php.ini配置文件中,有:include_path设定:

                                                                 

                  

                  可见默认无设定;

                                                     该设定其实可以设定多个目录,其间用分号分开;系统会按顺序依次找要载入的文件。

                                                     修改php.ini中的include_path为:

                      

                  

                 我们也可以在脚本中设定:

                                                                   

                我们也可以使用另一个函数来获取当前的include_path的值:

                                                                    

              2.上面没找到,在当前执行的网页文件所在目录(所谓当前工作目录)查找:

            所谓当前网页文件,就是地址栏中显示的那个文件名。

              3,上面还没找到,则在当前include命令所在文件的所在目录中查找:

            如果一个文件(A)包含文件B,在文件B中又有include命令包含文件C,

            此时B中的路径问题就可能发生这种情况。

    总结:

    • include_once 和include的区别:前者能够保证不会被重复加载
    • require 和 include的区别:
      • 如果被包含文件不,存在,即引用失败(出错)时,include发出警告并继续执行后续代码,require直接终止。
      • require_once 和 require的区别:前者能够保证不会被重复加载
  • 相关阅读:
    Java读写文本文件操作
    java常用的文件读写操作
    CentOS yum 源的配置与使用
    每天一个linux命令目录
    Linux的概念与体系
    linux ACL权限规划:getfacl,setfacl使用
    基于大数据的电影网站项目开发之HBase分布式安装(四)
    基于大数据的电影网站项目开发之阶段性总结(三)
    基于大数据的电影网站项目开发之Hadoop2.6.0伪分布式设置(二)
    基于大数据的电影网站项目开发之CentOS的安装(一)
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/7307475.html
Copyright © 2020-2023  润新知