zoukankan      html  css  js  c++  java
  • 关于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个... 
    这样定义的常量正好就是根目录的绝对地址了.... 
  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/apolloren/p/7857526.html
Copyright © 2011-2022 走看看