PHP:pathinfo()获得文件的路径、名称等信息

分类:PHP 发表时间:2009年12月11日 字体大小:12号14号

最近试图着去阅读一些PHP编程的资料,希望通过学习可以掌握好这门开源的后台编程语言。函数是编程语言的主要组成,所以多熟悉PHP语言内部函数的应用和意义,对我以后的PHP编程意义重大。

近两个月来我的js编程有了很大的提高,在借助与jQuery库的帮助下,着实写出了一些很多行实用的代码,运用到了项目中。所以我有了一个想法,我想我的下一个WP主题要使用大量的js来是想效果,运用一些Ajax的特性,使得我的博客更加地人性化。但因PHP编程不熟的原因所以只能推迟。

废话不说了,进入主题。

在PHP中,若想通过函数获得一个文件的路径、名称,或者是扩展名等,是非常容易的一件事。可以使用dirname()、basename()、pathinfo()等多种途径获得相应的信息。假设现在有一个图片文件,它的服务器端路径为:

1
$path = "/www/mywebsite/images/myphoto.jpg";

1.pathinfo()函数

pathinfo()函数返回的是一个包含了文件信息的数组,数组中有四个元素,分别是dirname、basename、extension、filename。打印数组的代码:

1
2
3
$fileArr = pathinfo($path);
print_r($fileArr);
//输出结果:Array ( [dirname] => /www/mywebsite/images [basename] => myphoto.jpg [extension] => jpg [filename] => myphoto )

这样我们只需根据数组的键名就可以获得对应的键值:

1
2
3
4
5
echo $fileArr['filename'];
//输出结果:myphoto  
echo $fileArr['extension'];
//输出结果:jpg
//...

2.dirname()函数

dirname()函数给出一个包含有指向一个文件的全路径的字符串,它返回的值去掉文件名后的目录名,可以认为是对pathinfo()函数的扩展:

1
2
3
4
5
6
7
echo dirname($path);
//输出结果:/www/mywebsite/images
 
//或者
echo dirname("/www/mywebsite/images/");	
echo dirname("/www/mywebsite/images");
//输出的结果都为:/www/mywebsite

所以可以理解为返回的值为路径的上一层目录地址名。

3.basename()函数

basename()函数给出一个包含有指向一个文件的全路径的字符串,他返回的值为基本的文件名,同样可以认为是对pathinfo()函数的扩展:

1
2
3
4
5
6
echo basename($path);
//输出结果:myphoto.jpg
 
//或者
basename("/www/mywebsite/images/");
//输出结果:images

所以可以理解为返回的值为路径的当前目录的名称。

该文内容为个人学习之用,不关心的朋友可以不做理会!

不错不错,已经有 个评论!
  1. 上学的时候,曾用暑假两个月的时间,读了一本“PHP程序设计”第一遍什么都没看懂,看了三遍,基本了解了,关键是PHP的语法太阁了,看的我难受,可能是之前学java的原因,还是喜欢java的语法风格

    • 我觉得php和js有点相像,就说定义变量吧。两种语言都不需要指定数据类型!

  2. 我就讨厌这个,js和php一样,语法不严谨,总之我用不习惯这个

    • 我比较奇怪,觉得js还好,但PHP就不太适应这种变量定义!

  3. 这样的语法,虽然灵活,后期维护起来困难许多,不单单是变量定义,php的函数名称也取的不好,像java里一样见名之意的好

    • 呵呵,你应该做服务器端开发很久了吧。我现在暂时只做前端,后台还在自学中。

    • PS:你可以点你自己回复,出现的回复内容会挂在下面的!你看我现在回复的样子!

    • 哦,你的回复应该多设几个分级,我都不能回复你的,一般设3——5个是需要的

    • 这种布局只能设两层,超过3层就需要再做图、再写css控制了,麻烦。所以就弄了两层,这样回复页面效果也好!

    • 这个wibiya工具条好像没用啊,那个最新发布、随机都显示不出内容

    • 有用的啊,就是速度比较慢的!!

    • 不行吧,我都看不到东西,浏览器有问题?

    • 哦,可以的,我的那个不行,需要设置什么吗

    • 最新测试结果,除了IE6本来就被我禁掉不显示外,其他显示的所有浏览器都完全正常。
      PS:貌似没什么好设的啊,我看你的设置也正常,怎么就不显示呢?

    • 现在可以啦,是我的rss地址不对

    • 我估计也是,因为它是根据RSS源查找列表的!

  4. 现在搞互联网,什么都要学。

    你显示代码用的什么插件?

    • 我用的是wp_codebox,比较好用!

  5. 真是非常非常的抱歉,前段时间由于空间问题导致博客瘫痪,希望重新申请交换链接

    网站名称:自由梦想
    网站地址:http://www.52vcc.com
    网站简介:关注和分享各种互联网技术

    相关参数:

    pr:2
    百度收录:112
    google收录:439

    再次因为我个人的原因导致你网站上原链接失效而深感歉意。

    • 已经重新添加!

我要评论

  • * *