分类: 网络与安全
2013-12-20 15:59:55
很多同学对路径问题总是分不清,在WEB开发中经常使用混淆,这里UncleToo总结了一些中经常使用的路径函数供大家参考,不全的部分大家可以参考。
1、pathinfo
pathinfo返回由给定文件的路径信息组成的数组。
示例:
1
2
3
4
5
6
7
|
$s_path='/uncletoo/app/index.php';
$path_parts = pathinfo($s_path);
echo "
";
echo var_dump($path_parts);
echo "";
?>
|
输出:
array(4) {
["dirname"]=>
string(4) "/uncletoo/app"
["basename"]=>
string(9) "index.php"
["extension"]=>
string(3) "php"
["filename"]=>
string(5) "index"
}
从上面示例可以看出,pathinfo函数返回了index.php文件所在的目录、文件全称、文件类型及文件名,这里要注意的是,返回值中的filename是在才加上的,之前的版本没有。
2、dirname
dirname函数返回给定路径的父目录,字符串类型。
示例:
1
2
3
4
5
6
|
echo "1) " . dirname("C:/uncletoo/php") . '
';
echo "2) " . dirname("/php/ut.php") . '
';
echo "3) " . dirname("/php/") . '
';
echo "4) " . dirname("index.php");
?>
|
输出:
1) C:/uncletoo
2) /php
3) \
4) .
这里要注意的就是第3和第4两种情况,这也是dirname函数容易出错的地方。
3、basename
basename函数返回给定路径中的基本文件名,如果只有路径没有文件名,则返回最后的目录名。
示例:
1
2
3
4
5
6
7
8
|
echo "1) ".basename("/uncletoo/php/index.d").'
';
echo "2) ".basename("/uncletoo/php/index.d", ".d").'
';
echo "3) ".basename("/uncletoo/php/").'
';
echo "4) ".basename("/uncletoo/").'
';
echo "5) ".basename(".").'
';
echo "6) ".basename("/");
?>
|
输出:
1) index.d
2) index
3) php
4) uncletoo
5) .
6)
从这里可以看出,basename函数与dirname函数的取值是互补相反的。
提示:以上三个函数不会验证给定目录是否存在,只是把路径当做字符串来解析,所以,当你给一个不存在的路径时,同样也会给出正确数据。
4、parse_url
parse_url函数返回含在给定 URL 中出现的各部分组成的数组。本函数不会去验证给定 URL 的合法性的,只是将其视为字符串解析。不完整的 URL 也被接受,对严重不合格的 URL,parse_url() 可能会返回 FALSE。
示例:
1
2
3
4
5
6
7
8
9
|
$url1 = '';
$url2 = '';
echo '
';
echo var_dump(parse_url($url1));
echo '============================
';
echo var_dump(parse_url($url2));
echo '';
?>
|
输出:
array(5) {
["scheme"]=>
string(4) "http"
["host"]=>
string(16) ""
["path"]=>
string(13) "/php/path.php"
["query"]=>
string(15) "arg=value&id=10"
["fragment"]=>
string(6) "anchor"
}
================================
array(4) {
["scheme"]=>
string(4) "http"
["host"]=>
string(8) "hostname"
["user"]=>
string(8) "username"
["pass"]=>
string(8) "password"
}
从输出结果可以看出,parse_url()函数会将不同类型的url正确地解析。
另外, 为了向后兼容的需要有个例外,对 file:// 协议允许三个斜线(file:///...)。其它任何协议都不能这样。
5、realpath
realpath函数是我们在开发过程中经常使用到的,PHP官方手册给出的解释是返回规范的绝对路径,我的理解就是返回给定文件所在的物理绝对路径。
示例:
1
2
3
|
echo var_dump(realpath('app/index.php'));
?>
|
输出:
D:\php\apache\htdocs\APP\index.php
(这是我本机的路径,不同的存放路径这里输出的不一样)
realpath函数不同于上面几种,他是要检测文件是否存在,如果不存在,函数将返回FALSE。
以上5个路径函数是我们在开发中经常用到的,简单整理出来分享给大家,希望能对大家有所帮助。还有其他一些路径函数,大家可以参考。