• 关于define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));的理解


    关于define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));的理解

    define('DISCUZ_ROOT',  substr(dirname(__FILE__), 0, -7));
    得到网站根目录
    对于上面这语句一直不理解是什么意思,查了相关资料有点了结 

    首先:这个语句由  define(), substr(), dirname()三个函数组成 

    1. define()
    定义和用法 define() 函数定义一个常量。常量类似变量,不同之处在于:
    • 在设定以后,常量的值无法更改
    • 常量名不需要开头的美元符号 ($)
    • 作用域不影响对常量的访问
    • 常量值只能是字符串或数字
    语法define(name,value,case_insensitive)                        参数            描述                            name            必需。规定常量的名称。                            value            必需。规定常量的值。                            case_insensitive                       

    必需。规定常量的名称是否对大小写敏感。

    若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。


    注:第三个参数也是今天看了函数原型学到的,define也可以设置大小写的敏感。

    2.dirname(path )
    定义和用法 path 参数是一个包含有指向一个文件的全路径的字符串。该函数返回去掉文件名后的目录名。
    语法string dirname ( string path )                                                                                    
                                参数        
                                             描述             
                                              path   
                               必需。规定要检查的路径。             
    例子<?php
    echo dirname("c:/testweb/home.php");
    echo dirname("/testweb/home.php");
    ?>

    输出:

    c:/testweb
    /testweb
    3.substr( ) 函数        
    定义和用法substr() 函数返回字符串的一部分 
    语法string substr     ( string $string    , int $start    [, int $length   ] )                                                        

                               参数        
    描述                            string            必需。规定要返回其中一部分的字符串。                            start                       

    必需。规定在字符串的何处开始。

    • 正数 - 在字符串的指定位置开始
    • 负数 - 在从字符串结尾的指定位置开始
    • 0 - 在字符串中的第一个字符处开始
    charlist                       

    可选。规定要返回的字符串长度。默认是直到字符串的结尾。

    • 正数 - 从 start 参数所在的位置返回
    • 负数 - 从字符串末端返回
                             注释:如果 start 是负数且 length 小于等于 start,则length为 0   

    4.__FILE__

    __FILE__的路径是当前代码所在文件(而不是url所在  文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址

    define('DISCUZ_ROOT',  substr(dirname(__FILE__), 0, -7)); 

    假设 __FILE__为 /home/web/include/common.php
    因此
    dirname(__FILE__)的返回值就是/home/web/include

    substr(dirname(__FILE__), 0, -7))的返回值就是/home/web/

    define('DISCUZ_ROOT',  substr(dirname(__FILE__), 0, -7));  
    就是定义常理DISCUZ_ROOT的值为/home/web/

    为什么是-7呢??? 
    对,因为他们都恰好在include文件夹内,数数字母个数,恰好是7个... 
    这样定义的常量正好就是根目录的绝对地址了.... 
  • 相关阅读:
    上下文相关协议的学习
    正则模块学习
    Delphi 10.2.3 + Xcode 9.2 开发 IOS 程序,免证书+免越狱,真机调试
    Delphi X10.2 + FireDAC 使用 SQL 语句 UPDATE
    Delphi X10.2 + FireDAC 使用 SQL 语句 INSERT
    Png 图像缩放保持 Alpha 通道
    delphi 10.1 Berlin 中使用自带的 Base64 编码
    delphi 10.1 Berlin 中使用自带的 MD5 校验
    完成 bass 库的频谱显示效果图
    Ubuntu 12.04 LTS 安裝无线网卡驱动
  • 原文地址:https://www.cnblogs.com/apolloren/p/7857526.html
Copyright © 2020-2023  润新知