搜索
首页后端开发php教程总结PHP文件函数和目录函数

总结PHP文件函数和目录函数

Aug 18, 2017 pm 01:24 PM
php函数目录

下面小编就为大家带来一篇基于PHP常用文件函数和目录函数整理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一、常用文件函数库

1、basename(); -- 返回路径中的文件名部分。


string basename ( string $path [, string $suffix ] )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。  

参数:path 一个路径。在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)

suffix 如果文件名是以 suffix 结束的,那这一部分也会被去掉。

返回值:返回 path 的基本的文件名。


$path = 'd:/test/test.txt';

echo basename($path);
echo "<br>";
echo basename($path,&#39;.txt&#39;);

2、dirname(); -- 返回路径中目录部分


string dirname ( string $path )
//给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。 

参数:path,一个路径。在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。

返回值:返回 path 的父目录。 如果在 path 中没有斜线,则返回一个点('.'),表示当前目录。否则返回的是把path 中结尾的 /component(最后一个斜线以及后面部分)去掉之后的字符串。


$path = &#39;d:/test/test.txt&#39;;

echo basename($path);
echo "<br>";
echo basename($path,&#39;.txt&#39;);
echo "
"; echo dirname($path);

3、pathinfo(); --返回文件路径的信息


mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
//pathinfo() 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 options。  

参数: path 要解析的路径。    

options 如果指定了,将会返回指定元素;它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和PATHINFO_EXTENSION 或 PATHINFO_FILENAME。如果没有指定 options 默认是返回全部的单元。 

返回值:如果没有传入 options ,将会返回包括以下单元的数组 array:dirname,basename 和 extension(如果有),以 及filename。   


$path = &#39;d:/test/test.txt&#39;;
var_dump(pathinfo($path));

4、filetype();--取得文件类型


string filetype ( string $filename )
//返回文件的类型。

参数: filename 文件的路径。 

返回值: 返回文件的类型。

可能的值有 fifo,char,dir,block,link,file 和 unknown。如果出错则返回 FALSE。如果 stat 调用失败或者文件类型未知的话 filetype() 还会产生一个 E_NOTICE 消息。


$path = &#39;d:/test/test.txt&#39;;
echo filetype($path);
//结果file

5、fstat()和stat();

⑴、fstat()-通过已打开的文件指针取得文件信息


array fstat ( resource $handle )
//获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。

参数: handle 文件系统指针,是典型地由 fopen() 创建的 resource(资源)。

返回值: 返回一个数组具有该文件的统计信息,该数组的格式详细说明于手册中 stat() 页面里。

⑵、stat() --给出文件的信息


array stat ( string $filename )
//获取由 filename 指定的文件的统计信息。如果 filename 是符号连接,则统计信息是关于被连接文件本身的,而不是符号连接。
//lstat() 和 stat() 相同,只除了它会返回符号连接的状态。

参数:filename 文件的路径.


$path = &#39;d:/test/test.txt&#39;;

$fp = fopen("d:/test/test.txt","r");
$fstat = fstat($fp);
fclose($fp);
var_dump($fstat);

6、filesize();--取得文件大小


int filesize ( string $filename )
//取得指定文件的大小。

参数:filename 文件的路径。

返回值:返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。


<?php

// 输出类似:test.txt:  bytes

$filename = &#39;d:/test/test.txt&#39;;
echo $filename . &#39;: &#39; . filesize($filename) . &#39; bytes&#39;;

?>
//结果:d:/test/test.txt: 12 bytes

7、disk_free_space(); -- 返回目录中的可用空间


float disk_free_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。 

参数:directory 文件系统目录或者磁盘分区。


header("Content-Type:Text/html;charset=utf8");
$path = &#39;d:/test/test.txt&#39;;
$df = disk_free_space("d:/");
echo $df."字节";

8、disk_total_space(); --返回一个目录的磁盘总大小


float disk_total_space ( string $directory )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回所有的字节数。 【译者注】本函数返回的是该目录所在的磁盘分区的总大小,因此在给出同一个磁盘分区的不同目录作为参数所得到的结果完全相同。 在 Unix 和 Windows 200x/XP 中都支持将一个磁盘分区加载为一个子目录,这时正确使用本函数就很有意义。

参数:directory 文件系统的目录或者磁盘分区

9、fopen($filepath,$mode) 


resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
//fopen() 将 filename 指定的名字资源绑定到一个流上  

参数:filename 如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。

fopen() <span style="font-family:NSimsun">mode</span> 的可能值列表
<span style="color:#000000;font-size:16px;font-family:NSimsun">mode</span> 说明
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 <span style="font-family:NSimsun">FALSE</span>,并生成一条 <span style="font-family:NSimsun">E_WARNING</span> 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
'x+' 创建并以读写方式打开,其他的行为和 'x' 一样。


<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

10、file();--把整个文件读入一个数组中


array file ( string $filename [, int $flags = 0 [, resource $context ]] )
//把整个文件读入一个数组中。 

参数:filename 文件的路径。

flags 可选参数 flags 可以是以下一个或多个常量:

1、FILE_USE_INCLUDE_PATH 在 include_path 中查找文件。

2、FILE_IGNORE_NEW_LINES 在数组每个元素的末尾不要添加换行符

3、FILE_SKIP_EMPTY_LINES 跳过空行。

context 一个上下文资源,创建stream_context_create()函数。


<?php
// 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。
$lines = file(&#39;http://www.example.com/&#39;);
// 在数组中循环,显示 HTML 的源文件并加上行号。
foreach ($lines as $line_num => $line) {
  echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 另一个例子将 web 页面读入字符串。参见 file_get_contents()。
$html = implode(&#39;&#39;, file(&#39;http://www.example.com/&#39;));
// 从 PHP 5 开始可以使用可选标记参数
$trimmed = file(&#39;somefile.txt&#39;, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

11、file_get_contents();-- 将整个文件读入一个字符串


string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
//和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。  

参数:filename: 要读取的文件的名称。

use_include_path:As of PHP 5 the FILE_USE_INCLUDE_PATH can be used to trigger include path search.

context:A valid context resource created with stream_context_create(). 如果你不需要自定义 context,可以用 NULL 来忽略。


header("Content-Type:Text/html;charset=utf8");
// <= PHP 5
$file = file_get_contents(&#39;d:/test/test.txt&#39;, true);
echo $file.&#39;<br>&#39;;
// > PHP 5
$file = file_get_contents(&#39;d:/test/test.txt&#39;, FILE_USE_INCLUDE_PATH);
echo $file;
//结果
//this is test
//this is test

12、fgets();--从文件指针中读取一行


string fgets ( resource $handle [, int $length ] )
//从文件指针中读取一行。 

参数:handle:文件指针必须是有效的,必须指向由 fopen() 或 fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。

length:从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定length,则默认为 1K,或者说 1024 字节。

13、ftell();-- 返回文件指针读/写的位置


int ftell ( resource $handle )
//返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量。 

参数:handle : 文件指针必须是有效的,且必须指向一个通过 fopen() 或 popen() 成功打开的文件。在附加模式(加参数 "a" 打开文件)中 ftell() 会返回未定义错误。


header("Content-Type:Text/html;charset=utf8");
// opens a file and read some data
$fp = fopen("d:/test/test.txt", "r");
$data = fgets($fp, 4);
// where are we ?
echo ftell($fp); // 结果3
fclose($fp);

14、fseek();--在文件指针中定位


int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )
//在与 handle 关联的文件中设定文件指针位置。 新位置从文件头开始以字节数度量,是以 whence 指定的位置加上 offset。

参数 :handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源)。

offset:偏移量。要移动到文件尾之前的位置,需要给 offset 传递一个负值,并设置 whence 为 SEEK_END。

whence values are:

1、SEEK_SET - 设定位置等于 offset 字节。

2、SEEK_CUR - 设定位置为当前位置加上 offset。

3、SEEK_END - 设定位置为文件尾加上 offset。


header("Content-Type:Text/html;charset=utf8");
$fp = fopen(&#39;d:\test\test.txt&#39;, &#39;r&#39;);
// read some data
$data = fgets($fp, 4096);
// move back to the beginning of the file
// same as rewind($fp);
 fseek($fp, 0);

15、flock();--轻便的咨询文件锁定 


bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
//flock() 允许执行一个简单的可以在任何平台中使用的读取/写入模型(包括大部分的 Unix 派生版和甚至是 Windows)。  

参数:handle 文件系统指针,是典型地由 fopen() 创建的 resource(资源)。

operation 可以是以下值之一:

1、LOCK_SH取得共享锁定(读取的程序)。

2、LOCK_EX 取得独占锁定(写入的程序。

3、LOCK_UN 释放锁定(无论共享或独占)。

如果不希望 flock() 在锁定时堵塞,则是 LOCK_NB(Windows 上还不支持)。

wouldblock:如果锁定会堵塞的话(EWOULDBLOCK 错误码情况下),可选的第三个参数会被设置为 TRUE。(Windows 上不支持)


if (flock($fp, LOCK_EX)) { // 进行排它型锁定
  ftruncate($fp, 0);   // truncate file
  fwrite($fp, "Write something here\n");
  fflush($fp);      // flush output before releasing the lock
  flock($fp, LOCK_UN);  // 释放锁定
} else {
  echo "Couldn&#39;t get the lock!";
}

fclose($fp);

16、is_readable --判断给定文件名是否可读


bool is_readable ( string $filename )
//判断给定文件名是否存在并且可读。 

参数:filename:文件的路径。

返回值:如果由 filename 指定的文件或目录存在并且可读则返回 TRUE,否则返回 FALSE。 


$filename = &#39;d:\test\test.txt&#39;;
if (is_readable($filename)) {
  echo &#39;The file is readable&#39;;
} else {
  echo &#39;The file is not readable&#39;;
}
//The file is readable

17、is_writeable -- 判断给定的文件名是否可写


bool is_writable ( string $filename )
//如果文件存在并且可写则返回 TRUE。filename 参数可以是一个允许进行是否可写检查的目录名。  

参数:filename 要检查的文件名称。


$filename = &#39;d:\test\test.txt&#39;;
if (is_writeable($filename)) {
  echo &#39;The file is writeable&#39;;
} else {
  echo &#39;The file is not writeable&#39;;
}
//The file is writeable

18、chown(); -- 改变文件的所有者


bool chown ( string $filename , mixed $user )
//尝试将文件 filename 的所有者改成用户 user(由用户名或用户 ID 指定)。 只有超级用户可以改变文件的所有者。

参数:filename:文件路径。

user:用户名或数字。

二、目录函数

1、is_dir();--判断给定文件名是否是一个目录


bool is_dir ( string $filename )
//判断给定文件名是否是一个目录。 

参数:filename:如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。


$filename = &#39;d:\test\test.txt&#39;;
var_dump(is_dir(&#39;$filename&#39;));  //bool(false) 
var_dump(is_dir(&#39;d:\test&#39;));    //bool(true)

2、mkdir();--新建目录


bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )//尝试新建一个由 pathname 指定的目录。

参数:pathname:目录的路径。

mode:默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。
mkdir("d:/test/test1", 0700);

3、opendir();--打开目录句柄


resource opendir ( string $path [, resource $context ] )
//打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。 

参数:path 要打开的目录路径

context 参数的说明见手册中的 Streams API 一章。

4、readdir();--从目录句柄中读取条目


string readdir ([ resource $dir_handle ] )
//返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。 

参数:dir_handle 目录句柄的 resource,之前由 opendir() 打开


header("Content-Type:Text/html;charset=utf8");
if ($handle = opendir(&#39;d:/test&#39;)) {
  echo "Directory handle: $handle\n";
  echo "Files:\n";

  /* 这是正确地遍历目录方法 */
  while (false !== ($file = readdir($handle))) {
    echo "$file\n";
  }

  /* 这是错误地遍历目录的方法
  while ($file = readdir($handle)) {
    echo "$file\n";
  }
  */
  closedir($handle);
}

以上是总结PHP文件函数和目录函数的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP的目的:构建动态网站PHP的目的:构建动态网站Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP:处理数据库和服务器端逻辑PHP:处理数据库和服务器端逻辑Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

您如何防止PHP中的SQL注入? (准备的陈述,PDO)您如何防止PHP中的SQL注入? (准备的陈述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python:代码示例和比较PHP和Python:代码示例和比较Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP行动:现实世界中的示例和应用程序PHP行动:现实世界中的示例和应用程序Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP:轻松创建交互式Web内容PHP:轻松创建交互式Web内容Apr 14, 2025 am 12:15 AM

PHP可以轻松创建互动网页内容。1)通过嵌入HTML动态生成内容,根据用户输入或数据库数据实时展示。2)处理表单提交并生成动态输出,确保使用htmlspecialchars防XSS。3)结合MySQL创建用户注册系统,使用password_hash和预处理语句增强安全性。掌握这些技巧将提升Web开发效率。

PHP和Python:比较两种流行的编程语言PHP和Python:比较两种流行的编程语言Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP的持久相关性:它还活着吗?PHP的持久相关性:它还活着吗?Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能