PHP解析目录路径的3个函数总结

要描述一个文件的位置,可以使用决对路径和相对路径。绝对路径是从根开始一级一级地进入各个子目录,最后指定该文件名或目录名。而相对目录是从当前目录进入某目录,最后指定该文件名或目录名。在系统的每个目录下都有两个特殊的目录“.”和“..”,分别指示当前目录和当前目录的父目录(上一级目录)。例如:

代码如下:

$unixPath = “/var/www/html/index.php”; –在UNIX系统中绝对路径,必须使用“/”作为路径分隔符
$winPath = “C:\\Appserv\\www\\index.php”; –Windows系统的绝对路径,默认使用“\”作为路径分隔符
$winPath = “C:/Appserv/www/index.php”; –在Windows系统中也接受“/”作为路径分隔符,推荐使用
$fileName1=”file.txt”; –相对路径,当前目录下的file.txt文件
$fileName2=”javascript/common.js”; –相对路径,当前目录中javascript子目录下的common.js文件
$fileName3=”../images/logo.gif”; –相对路径,上一级目录中images子目录下的logo.gif文件

在上例中,分别列出了UNIX和Windows系统中绝对路径和相对路径的格式。其中在UNIX系统中必须使用正斜线“/”作为路径分隔符,而在Windows系统中默认使用反斜线“\”作为路径分隔符,在程序中表示还要将“\”转义,但也接受正斜线“/”作为分隔符的写法。为了程序可以有很好的移植性,建议都使用“/”作为文件的路径分隔符。另外,也可以使用PHP的内置常量DIRECTORY_SEPARATOR,其值为当前操作系统的默认文件路径分隔符。例如:

代码如下:

$fileName2 = “javascript”.DIRECTORY_SEPARATOR.”common.js”; –Unix为“/”,Windows为“\”

将目录路径中各个属性分离开通常很有用,如末尾的扩展名、目录部分和基本名。可以通过PHP的系统函数basename()、dirname()和pathinfo()函数完成这些任务。

①函数basename()

函数basename()返回路径中的文件名部分。该函数的原型如下所示:

代码如下:

string basename(string path[,string suffix]) //返回路径中的文件名部分

该函数给出一个包含其指向一个文件的全路径的字符串,本函数返回基本的文件名。第二个参数可选参数,规定文件的扩展名。如果提供了则不会输出这个扩展名。该函数的使用如下面的代码所示:

代码如下:

<?php
//包含有指向一个文件的全部路径的字符串
$path = "/var/www/html/page.php";
//显示带有文件扩展名的文件名,输出page.php
echo basename($path);
//显示不带有文件扩展名的文件名,输出page
echo basename($path,".php");
?>

②函数dirname()

该函数恰好与basename()相反,只需要一个参数,给出一个包含有指向一个文件的全部路径的字符串,本函数返回去掉文件名后的目录名。该函数的使用如以下代码所示:

代码如下:

<?php
$path = "/var/www/html/page.php";
echo dirname($path); //返回目录名/var/www/html
echo dirname('c:/'); //返回目录名c:/
?>

③函数pathinfo()

函数pathinfo()返回一个关联数组,其中包括指定路径中的目录名、基本名和扩展名三个部分。分别通过数组键dirname、basename和extension来引用。该函数的使用如下代码所示。

代码如下:

<?php
$path = "/var/www/html/page.php";
$path_parts = pathinfo($path); //返回包括指定路径中的目录名、基本名和扩展名关联数组
echo $path_parts["dirname"]; //输出目录名/var/www/html
echo $path_parts["basename"]; //输出基本名page.php
echo $path_parts["extension"]; //输出扩展名.php
?>

(0)

相关推荐

  • php中FTP函数ftp_connect、ftp_login与ftp_chmod用法

    本文实例讲述了php中FTP函数ftp_connect.ftp_login与ftp_chmod用法.分享给大家供大家参考.具体方法如下: ftp_connect() 函数建立一个新的 ftp 连接,若成功,则返回一个连接标识,否则返回 false. 语法:ftp_connect(host,port,timeout),实例代码如下: 复制代码 代码如下: $file='public_html/index.php';         //定义文件 $conn_id=ftp_connect($ftp_

  • PHP文件锁函数flock()详细介绍

    文件操作系统是在网络环境下完成的,可能有多个客户端用户在同一个时刻对服务器上的同一个文件访问.当这种并发访问产生时,很可能会破坏文件中.例如一个用户正在向文件中写入数据,当还没有写完时,其他用户在这一时刻也向这个文件中写数据,就会造成数据写入混乱.还有,当用户没有将数据写完时,其他用户就去获取这个文件中的内容,也会得到残缺的数据. 在PHP中提供了flock()函数,可以对文件使用锁定机制(锁定或释放文件).当一个进程在访问文件时加上锁,其他进程要想对该文件进行访问,则必须等到锁定被释放以后.这

  • php中getservbyport与getservbyname函数用法实例

    本文实例讲述了php中getservbyport与getservbyname函数用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: string getservbyport ( int $port , string $protocol )   */ $services=array('80','21','22','23','25','143');      //定义数组 foreach($services as $service)         //循环读取内容 {   $protoc

  • PHP中通过fopen()函数访问远程文件示例

    使用PHP不仅可以让用户通过浏览器访问服务器端的文件,还可以通过HTTP或FTP等协议访问其他服务器中的文件,可以在大多数需要用文件名作为参数的函数中使用HTTP和FTP URL来代替文件名.使用fopen()函数将指定的文件名与资源绑定到一个流上,如果文件名是"scheme://-"的格式,则被当成一个URL,PHP将搜索协议处理器(也被成为封装协议)来处理此模式. 如果需要远程访问文件,必须在PHP的配置文件中激活"allow_url_fopen"选项,才能使用

  • php中字符查找函数strpos、strrchr与strpbrk用法

    本文实例讲述了php中字符查找函数strpos.strrchr与strpbrk用法.分享给大家供大家参考.具体如下: ① strpos() 函数返回字符串在另一个字符串中第一次出现的位置,如果没有找到该字符串,则返回 false. 语法:strpos(string,find,start),代码如下: 复制代码 代码如下: $str="hello world";          //定义字符串1 $result=strpos($str,"ll");        

  • PHP移动文件指针ftell()、fseek()、rewind()函数总结

    在对文件进行读写过程中,有时需要在文件中跳转.同不同位置读取,以及将数据写入到不同的位置.例如,使用文件模拟数据库保存数据,就需要移动文件指针.指针的位置是以从文件头开始的字节数度量的,默认以不同模式打开文件时,文件指针通常在文件的开头或是结尾处,可以通过ftell().fseek()和rewind()三个函数对文件指针进行操作,它们的原型如下所示: 复制代码 代码如下: int ftell(resource handle)         //返回文件指针的当前位置 int fseek(res

  • PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结

    在进行PHP编程时,需要对服务器某个目录下面的文件进行浏览,通常成为遍历目录.取得一个目录下的文件和子目录,就需要用到opendir()函数.readdir()函数.closedir()函数和rewinddir()函数. ①函数opendir() 函数opendir()用于打开指定目录,接受一个目录的路径及目录名作为参数,函数返回值为可供其他目录函数使用的目录句柄(资源类型).如果该目录不存在或者没有访问权限,则返回FALSE. ②函数readdir() 函数readdir()用于读取指定目录,

  • php字符比较函数similar_text、strnatcmp与strcasecmp用法分析

    本文实例讲述了php字符比较函数similar_text.strnatcmp与strcasecmp用法.分享给大家供大家参考.具体如下: ① similar_text() 函数计算两个字符串的匹配字符的数目,该函数也可以计算两个字符串的相似度,以百分比计. 语法:similar_text(string1,string2,percent) 注释:levenshtein() 函数比 similar_text() 函数更快,不过,similar_text() 函数通过更少的必需修改次数提供更精确的结果

  • php中ftp_chdir与ftp_cdup函数用法

    本文实例讲述了php中ftp_chdir与ftp_cdup函数用法.分享给大家供大家参考.具体用法如下: ftp_chdir()函数 若成功,则返回 true,否则返回 false,如果切换目录失败,php还会发出一条警告. 语法:ftp_chdir(ftp_connection,directory) 参数 描述 ftp_connection 必需,规定要使用的 ftp 连接,ftp 连接的标识符. directory 必需,规定要切换到的目录. 复制代码 代码如下: //设置基础连接 $con

  • php数组查找函数总结

    本文实例总结了php数组查找函数.分享给大家供大家参考.具体如下: 这里提供三种方法来判断一个字符串中是否包括我们定义好的词,这比较适合于在留言,评论等地址进行关键词过滤,实例代码如下: 复制代码 代码如下: $crud = array('中国|||我国|||大地', 'kelon|||lerke|||sb', 'sesscxx'); $crud = join('|',$crud); $crud = str_replace('|||', '|', $crud); $pat  = "/({$cru

随机推荐