php代码中获取查看文件路径与文件名称的几种方式

编辑:管理员 发布时间:2022-08-25 21:50:412006

以下简单分享了在php代码中,使用php内置函数对文件路径进行一些简单的分析以及处理的几种常见方法.

1、文件的当前绝对路径

在php中有着几个魔术魔术常量,__LINE__php文件中当前行的行号, __FUNCTION__ 函数名称,__CLASS__ 类的名称,__METHOD__类的方法,这里我们主要用到了__FILE__ ,它可以完整获得当前文件的到系统根目录的绝对路径与文件名,如果用在了include等包含的函数文件中,那么返回被包含的文件名.

<?php

echo __FILE__;

?>

结果为:D:\www\当前文件.php

如果只需要当前的绝对路径不需要获得文件名称呢?

<?php

echo dirname(__FILE__);

echo  __DIR__;

?>

D:\www\

D:\www

dirname()函数,它可以返回指定路径中的目录部分.其功能等价于__DIR__,区别在于dirname结尾目录有\,而魔术常量__DIR__除非是根目录,否则结尾没有斜杠结尾.

我们也可以将dirname函数用法扩展叠加一下,将每层的下一层目录当作文件来处理,就可以获得当前php文件的上一层目录的绝对地址.


2、相对路径

假设

<?php

$lujin1 = '/www/dd/b/c/e.php';

$lujin2 = '/www/dd/11/35/d.php';

$lujin1=explode('/',$lujin1);

$lujin2=explode('/',$lujin2);

$lujin1_2=array_values(array_diff($lujin1,$lujin2));

$lujin2_1=array_values(array_diff($lujin2,$lujin1));

array_pop($lujin1_2);

foreach($lujin1_2 as &$v){

$v='..';

}


$lujinarr=array_merge($lujin1_2,$lujin2_1);

$xiangdui=implode("/",$lujinarr);

echo $lujin2."相对于".$lujin1."的相对路径为:".$xiangdui;

//或者


$count=0;

//得到相同路径部分个数

$newsz=min(count($lujin1),count($lujin2));

//去除相同部分

for ($i=0;$i<$newsz;$i++){

if ($lujin1[$i]==$lujin2[$i]){

unset($lujin1[$i]);

$count++;

}

else{

break;

}

}

echo str_repeat("../", $count).implode("/", $lujin1);

//将相同部分用"../代替"并重新组合成相对路径

?>

通过路径explode将路径1与路径2拆分为数组,然后array_diff返回两个路径对比的差值,在将其转为新的数组合并,最后将数组转为字符串即可.


3、获取文件名称

绝对地址获得当前文件的文件名称

带后缀的文件名:basename(__FILE__)

不带后缀的文件名:basename(__FILE__,".php")

$dizhi = 'C:\abc\\www\\\Z\1.php';

$dizhi = str_replace('\\', '/', $dizhi);


if (substr($dizhi, -1) != '/') {

$dizhi = $dizhi . '/';

}

然后相对地址与绝对地址都可以使用下列方法:

1、basename函数

basename($dizhi);

2、先查找"/"最后一次出现位置再用substr字符串截取,查找替换文字即可得到文件名

$dizhi = trim($dizhi, '/');

echo substr($dizhi, strripos($dizhi, '/') + 1);

3、与第二种类似,只不过这里用了dirname函数返回路径中目录部分,然后再计算目录部分字符长度后substr截取出剩下部分就是文件名称

echo substr($dizhi, strlen(dirname($dizhi)) + 1);

4、将路径转为数组后,再通过array_pop删除最后一个数组且输出提示.

$dizhiarr = explode('/',$dizhi);

echo array_pop($dizhiarr);

5、pathinfo函数可以查看指定文件的基础信息.如dirname目录名称、basename文件名称、extension文件后缀等等.

$dizhiinfo = pathinfo($dizhi);

echo $dizhiinfo['basename'];

以上就是在php中获取或查看相对路径与绝对路径、文件名称的一些小方法.

TAGS: php 路径
热门文章
最新文章

热门标签

数学计算路径命令行表单字符符号nginxcookiejavapython数组文字处理小数服务器管理apache图片处理