我们经常会遇到处理文件路径的情况。
例如:
1.文件后缀需要取出来
2.路径需要取出名字不取目录
3.只需要取出路径名中的目录路径
4.或者把网址中的各个部份进行解析取得独立值
5.甚至是自己组成一个url出来
... ....
很多地方都需要用路径处理类的函数。
我们把常用的路径处理函数为大家做了标注,大家对着这个路径处理函数进行处理即可:
函数名 | 功能 |
---|---|
pathinfo | 返回文件的各个组成部份 |
basename | 返回文件名 |
dirname | 文件目录部份 |
parse_url | 网址拆解成各部份 |
http_build_query | 生成url 中的query字符串 |
http_build_url | 生成一个url |
pathinfo
array pathinfo ( string $路径) 功能:传入文件路径返回文件的各个组成部份
我们用具体的示例来用一下:
<?php $path_parts = pathinfo('d:/www/index.inc.php'); echo '文件目录名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件扩展名:'.$path_parts['extension']."<br />"; echo '不包含扩展的文件名:'.$path_parts['filename']."<br />"; ?>
结果如下:
文件目录名:d:/www 文件全名:lib.inc.php 文件扩展名:php 不包含扩展的文件名:lib.inc
basename
string basename ( string $路径[, string $suffix ]) 功能:传入路径返回文件名 第一个参数传入路径。 第二个参数,指定我文件名到了指定字符停止。
<?php echo "1: ".basename("d:/www/index.d", ".d").PHP_EOL; echo "2: ".basename("d:/www/index.php").PHP_EOL; echo "3: ".basename("d:/www/passwd").PHP_EOL; ?>
执行结果如下
1: index 2: index.php 3: passwd
dirname
dirname(string $路径) 功能:返回文件路径的文件目录部份
<?php dirname(__FILE__); ?>
结论:你可以执行看看是不是返回了文件的目录部份。
parse_url
mixed parse_url ( string $路径 ) 功能:将网址拆解成各个部份
<?php $url = 'http://username:password@hostname:9090/path?arg=value#anchor'; var_dump(parse_url($url)); ?>
结果如下:
array(8) { ["scheme"]=> string(4) "http" ["host"]=> string(8) "hostname" ["port"]=> int(9090) ["user"]=> string(8) "username" ["pass"]=> string(8) "password" ["path"]=> string(5) "/path" ["query"]=> string(9) "arg=value" ["fragment"]=> string(6) "anchor" }
http_build_query
string http_build_query ( mixed $需要处理的数据) 功能:生成url 中的query字符串
<?php //定义一个关联数组 $data = [ 'username'=>'php', 'area'=>'hubei' ]; //生成query内容 echo http_build_query($data); ?>
结果如下:
username=php&area=hubei
http_build_url()
功能: 生成一个url
注:
PHP_EOL 常量
在 windows平台相当于 echo "\r\n";
在unix\linux平台相当于 echo "\n";
在mac平台相当于 echo "\r";