PHP dirname功能及原理实例解析

dirname

返回路径中的目录部分

说明

dirname(string$path) :string

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

参数

path

一个路径。

在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。

返回值

返回 path 的父目录。 如果在path中没有斜线,则返回一个点('.'),表示当前目录。否则返回的是把path中结尾的/component(最后一个斜线以及后面部分)去掉之后的字符串。

Example #1dirname()例子

<?php
echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc
echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or \ on Windows)
echo "3) " . dirname("."); // 3) .
?>

注:自PHP 4.3.0以来,在旧功能会给您空字符串的情况下,您经常会从dirname()得到一个斜线或一个点。

例如:您可以使用它来获取当前目录,父级目录:

<?php
dirname(__FILE__);
dirname(dirname(__FILE__));
?>

例如:如果文件系统中任何位置包含的名为“database.init.php”的脚本想要包含位于同一目录中的“database.class.php”脚本,则可以使用:

<?php
include_once(dirname(__FILE__) .'/database.class.php');
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • PHP dirname(__FILE__)原理及用法解析

    dirname(dirname(_FILE_)); 假设__FILE__为 /home/web/config/config.php 上面的方法输出为 /home/web dirname(dirname(\__FILE__));//得到的是文件上一层目录名 dirname(\__FILE__);//得到的是文件所在层目录名 发现网上找了很多文章都是错误的,特别验证后发出来: dirname(_FILE_) php中定义了一个很有用的常数,即:_file_ 这个内定常数是所在php程序文件的完整路径

  • PHP 中dirname(_file_)讲解

    通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题. dirname(dirname(__FILE__)); /*  假设__FILE__为 /home/web/config/config.php   上面的方法输出为 /home/web   */  dirname(dirname(__FILE_

  • php getcwd与dirname(__FILE__)区别详解

    __FILE__是魔术常量,用于获取文件的完整路径和文件名.如果用在被包含文件中,则返回被包含的文件名. 下面我们通过实例来介绍getcwd与dirname(__FILE__)区别. 文件/folder/random/foo.php的代码如下: <?php echo getcwd() . "\n"; echo dirname(__FILE__) . "\n" ; echo "-------\n"; include 'bar/bar.php'

  • PHP中__FILE__、dirname与basename用法实例分析

    本文实例讲述了PHP中__FILE__.dirname与basename用法.分享给大家供大家参考.具体方法如下: 在php中__FILE__当前运行文件的完整路径和文件名,如果用在被包含文件中,则返回被包含的文件名,这是一个魔法变量(预定义常量),我们可以通用dirname与basename来获取文件目录或文件名. 一.__FILE__与dirname(__FILE__)与basename(__FILE__)使用: 通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,

  • php dirname(__FILE__) 获取当前文件的绝对路径

    PHP 常量 dirname(__file__) __FILE__ :被称为PHP魔术常量 ,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径 1)dirname(__FILE__) 函数返回的是脚本所在在的路径. 比如文件 b.php 包含如下内容: <?php $basedir = dirname(__FILE__); echo $basedir //将在页面打印出一个这个文件所在绝对路径! ?> 我做的测试得到结果: E:/website/othertest/cms 这个相当于

  • 解析php dirname()与__FILE__常量的应用

    __FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称,dirname(__FILE__)."/f/".basename(__FILE__)则表示当前文件所在目录下的f目录下的,文件名称为dirname(__FILE__)的文件,require表示包含该文件到这个文件.下面是详解:1)dirname(__FILE___) 函数返回的是脚本所在在的路径.     比如文件

  • PHP dirname功能及原理实例解析

    dirname 返回路径中的目录部分 说明 dirname(string$path) :string 给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名. 参数 path 一个路径. 在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符.在其它环境下是斜线(/). 返回值 返回 path 的父目录. 如果在path中没有斜线,则返回一个点('.'),表示当前目录.否则返回的是把path中结尾的/component(最后一个斜线以及后面部分)去掉之后的字符串

  • hashset去除重复值原理实例解析

    Java中的set是一个不包含重复元素的集合,确切地说,是不包含e1.equals(e2)的元素对.Set中允许添加null.Set不能保证集合里元素的顺序. 在往set中添加元素时,如果指定元素不存在,则添加成功.也就是说,如果set中不存在(e==null?e1==null:e.queals(e1))的元素e1,则e1能添加到set中. 下面以set的一个实现类HashSet为例,简单介绍一下set不重复实现的原理: package com.darren.test.overide; publ

  • JavaScript事件冒泡机制原理实例解析

    这篇文章主要介绍了JavaScript事件冒泡机制原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 DOM事件流(event flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段,事件冒泡顺序是由内到外进行事件传播,事件冒泡是由IE开发团队提出来的,即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播. 听了简介介绍之后,您可能不理解,所以举个例子: <html> <head>

  • Java等待唤醒机制原理实例解析

    这篇文章主要介绍了Java等待唤醒机制原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 线程的状态 首先了解一下什么是线程的状态,线程状态就是当线程被创建(new),并且启动(start)后,它不是一启动就进入了执行状态(run),也不是一直都处于执行状态. 这里说一下Java 的Thread类里面有一个State方法,这个方法里面涵盖了6种线程的状态,如下: public enum State { // 尚未启动的线程的线程状态.

  • Spring核心容器IOC原理实例解析

    这篇文章主要介绍了Spring核心容器IOC原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一 .BeanFactory Spring Bean 的创建是典型的工厂模式,这一系列的 Bean 工厂,也即 IOC 容器为开发者管理对象 间的依赖关系提供了很多便利和基础服务.最基本的 IOC 容器接口 BeanFactory,来看一下它的源码: public interface BeanFactory { //对 FactoryBean

  • JavaScript函数Call、Apply原理实例解析

    这篇文章主要介绍了JavaScript函数Call.Apply原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.方法重用 使用 call() 方法,您可以编写能够在不同对象上使用的方法. 1.函数是对象方法 在 JavaScript 中,函数是对象的方法. 如果一个函数不是 JavaScript 对象的方法,那么它就是全局对象的函数(参见前一章). 下面的例子创建了带有三个属性的对象(firstName.lastName.full

  • sql注入报错之注入原理实例解析

    目录 前言 0x01 0x02 0x03 总结 前言 我相信很多小伙伴在玩sql注入报错注入时都会有一个疑问,为什么这么写就会报错?曾经我去查询的时候,也没有找到满意的答案,时隔几个月终于找到搞清楚原理,特此记录,也希望后来的小伙伴能够少走弯路 0x01 我们先来看一看现象,我这里有一个users表,里面有五条数据: 然后用我们的报错语句查询一下: select count(*),(concat(floor(rand()*2),(select version())))x from users g

  • MySQL InnoDB锁类型及锁原理实例解析

    目录 锁 共享锁 排他锁 意向锁 记录锁 间隙锁 临键锁 死锁 死锁产生条件 行锁发生死锁 表锁发生死锁 锁的释放 事务阻塞 死锁的避免 锁的日志 行锁的原理 不带任何索引的表 带主键索引的表 带唯一索引的表 结论 1.表必定有索引 2.唯一索引数据行加锁,主键索引同样被锁 锁 锁是用来解决事务对数据的并发访问的问题的.MyISAM支持表锁,InnoDB同时支持表锁和行锁. 表加锁语法: lock tables xxx read; lock tables xxx write; unlock ta

  • Vue数据双向绑定原理实例解析

    Vue数据双向绑定原理是通过数据劫持结合发布者-订阅者模式的方式来实现的,首先是对数据进行监听,然后当监听的属性发生变化时则告诉订阅者是否要更新,若更新就会执行对应的更新函数从而更新视图 MVC模式 以往的MVC模式是单向绑定,即Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新 MVVM模式 MVVM模式就是Model–View–ViewModel模式.它实现了View的变动,自动反映在 ViewModel,反之亦然.对于双向绑定的理解,就是用户更

  • Android开发实现拍照功能的方法实例解析

    本文实例讲述了Android开发实现拍照功能的方法.分享给大家供大家参考,具体如下: 解析: 1)判断是否有摄像头checkCameraHardware(this) 2)获得相机camera = Camera.open(0); 3)把相机添加到mPreView = new SurfacePreView(this, mCamera); 4)实现拍照 mCamera.autoFocus 5)在拍照后使用mCamera.takePicture(null, null, mPicture);方法把图片保存

随机推荐