zoukankan      html  css  js  c++  java
  • 获取文件路径

    php -- 取路径:getcwd()、__DIR__、__FILE__ 的区别

     

    getcwd() :显示是 在哪个文件里调用此文件 的目录

    __DIR__ :当前内容写在哪个文件就显示这个文件目录

    __FILE__ : 当前内容写在哪个文件就显示这个文件目录+文件名

    由此可见

    getcwd()和 __DIR__ 返回的是文件所在的绝对路径但是没有文件自身的名字在内。

    __FILE__则是返回的是文件所在的绝对路径但是有文件自身的名字在内

    dirname(__FILE___) 函数返回的是脚本所在在的路径。 
    比如文件 b.php 包含如下内容: 
    <?php 
    $basedir = dirname(__FILE__); 
    ?> 
    如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。 
    变量$basedir 的内容还是b.php所在的那个文件夹的路径。 
    而不是变成a.php文件所在的目录。 
    dirname(__FILE__) 一般会返回文件所的当前目录到系统根目录的一个目录结构。 
    不会返回当前的文件名称。 

    以下是百度来的参考资料
    在ch06中建立文件 test.php。目录为:ch06 est.php

    内容如下:

    复制代码
    <?php
    $a= getcwd();
    //变量a的值为D:phpzend6.1ch6
    
    $b=__FILE__;
    //变量b的值为D:phpzend6.1ch6	est.php
    
    ?>
    复制代码

    下面在ch06项目下建立文件夹admincp文件夹。在admincp文件夹下建立文件fff.php。目录为:ch06admincpfff.php

    代码如下

    <?php
    include_once '../test.php';
    echo $a;//变量a中的值是D:phpzend6.1ch6admincp
    echo '<pre>';
    echo $b;//变量b中的值是D:phpzend6.1ch6	est.php
    ?>

    由此可见,在另一个文件中包含test.php文件。在test.php文件中用getcwd()获取的test.php的路径变量a在包含之后发生变化。目录结构加上了ffff.php的所在目录admincp,所以·在用文件定位时__FILE__较好

    举例

    <?php
    
    define('PATH_ROOT',($PATH_ROOT=dirname(__FILE__))?$PATH_ROOT:'..');
    $PATH_admincp=PATH_ROOT.'admincp';
    $PATH_picture=PATH_ROOT.'pciture';
    $PATH_admincp_include=$PATH_admincp.'include';
    
    ?>
    
    <?php
    include_once dirname(__FILE__).'/../../path.php';
    include_once PATH_ROOT."/con_ini.php";
    
    ?>

    总结:

          __DIR__ 和 __FILE__ 都是指向 所在文件的绝对路径,即 这两个 词出现在哪个文件里,就指向哪里;【dirname( __FILE__)等同于__DIR__】

              getcwd() 和  $_SERVER['SCRIPT_FILENAME'] 都是指向执行脚本路径,是会变化的,不是绝对的。

         

  • 相关阅读:
    了解自我
    IT技能栈
    客户端的工作不仅仅只是看起来那么简单
    .NET 基础 一步步 一幕幕[XML基础操作]
    .NET 基础 一步步 一幕幕[Winform应用程序]
    .NET 基础 一步步 一幕幕[面向对象之堆、栈、引用类型、值类型]
    .NET 基础 一步步 一幕幕[面向对象之new、this关键字]
    .NET 基础 一步步 一幕幕[面向对象之静态、非静态]
    .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]
    .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]
  • 原文地址:https://www.cnblogs.com/xie-xiao-chao/p/7968003.html
Copyright © 2011-2022 走看看