`
阅读更多

PHP使用文件和目录

1.使用include()包含文件

(1):使用include()从一个被包含文档返回一个值

(2):在控制结构中使用include()

 

include_once()函数需要一个包含文件的路径,此外,第一次调用它的情况和include()一样,如果在脚本执行中再次对同一个文件调用,那么这个文件不会再次包含。

 

在php.ini文件中设置include_path命令,如:include_path .;/home/user/bob/htdocs/project4/lib/

include_path的值可以包含任意多的目录,中间用分号隔开(Windows系统)。include_path指令中的项目顺序决定了查找指定文件的目录的顺序。第一个分号前的第一个(.)表示“当前目录”,并且应该给出。这样,include()或include_once()中使用的任何路径都是相对与include_path的值。

 

PHP也有一个require()函数,它执行和include()类似的功能,另外还有一个require_once()函数。不管脚本的流程如何,require()带入到代码中的一切内容都会执行,因此,不应该将其用作条件或循环结构的一部分。另外要注意,作为一条require()语句的结果所包含的文件,不能返回一个值。

 

2.验证文件

 

使用file_exists()检查存在性

 

文件还是目录?is_file(),is_dir()

 

检查一个文件的状态

is_readable()  是否可以读取一个文件

is_writable()  是否可以写入到这个文件

is_executable()  是否可以根据给定文件的许可或者其扩展名,在你的特定平台来执行它。

 

使用filesize()确定文件的大小,以字节为单位。

 

使用fileatime()函数来获取一个文件的最后访问时间。

使用filemtime()函数来获得一个文件的修改日期。

filectime()函数测试一个文件的修改时间。在UNIX系统上,当一个文件的内容被修改或者当其许可权限或所有者发生变化的时候,就设置修改日期。在其他平台上,返回文件的

创建日期。

 

3.创建并删除文件

如果一个文件还不存在,touch()函数创建。如果这个文件存在,其内容不会被打乱,但是修改日期将会更新,以反映出该函数的执行时间。

使用unlink()函数删除一个已有的函数。

 

4.打开一个文件供写入,读取或添加(添加内容,即在文件末尾添加数据)。

$fp=fopen("test.txt","r");

$fp=fopen("test.txt","w");

$fp=fopen("test.txt","a");

 

对由于许多原因导致无法打开文件异常进行处理

if($fp=fopen("test.txt","w")){

      //do something with the $fp resource

}

或者:

($fp=fopen("test.txt","w")) or die("Couldn't open file,sorry");

 

关闭文件:fclose($fp)。

 

5.读取文件:

使用fgets()和feof()来从一个文件读取行。

fgets()函数读取文件,直到它遇到一个换行字符(“\\n”),或者达到长度参数中指定的字节数,或者是到达文件的末尾,不管它先遇到哪一个。

feof(),当到达了文件的末尾的时候,该函数返回true,否则返回false。

 

使用fread()函数从文件读取任意数量的数据。

fseek()函数允许我们在一个文件中修改当前的位置。它需要一个文件源以及一个整数作为参数,这个整数表示从文件的开始跳过的偏移量(字节数)。

使用fgetc()函数从文件读取字符。

 

6.写入文件或向文件添加内容

$fp=fopen("test.txt","w");

所有后续的写入都发生在文件的开头处。如果这个文件还不存在,就创建它。如果这个文件已经存在,之前的所有内容都销毁并且由你写入的数据替代。

 

$fp=fopen("test.txt","a");

所有后续的写入文件的内容都将添加到现有内容的末尾,但是,如果你试图向一个不存在的文件添加内容,会先创建这个文件。

 

使用fwrite()或fputs()写入文件

fwrite()函数接受一个文件源和一个字符串,然后把字符串写入文件中。fputs()函数也以相同的方式工作。

 

7.锁定文件,防止多个用户对同一个文件同时进行写入操作,导致这个文件被毁坏。

 

使用flock()锁定文件,flock()函数需要一个来自打开的文件的有效文件源以及一个整数,这个整数表示你想要设置的锁定的种类。

                                       flock()函数的整数参数

——————————————————————————————————————————————————

常量                               整数                                                 锁定类型说明

——————————————————————————————————————————————————

LOCK_SH                         1             共享允许其他进程读取文件但是阻止写入(在读取一个文件的时候使用)

LOCK_EX                         2             独占阻止其他进程读取文件或者写入文件(在写入一个文件时使用)

LOCK_UN                         3             释放一个共享锁定或独占锁定

——————————————————————————————————————————————————

我们应该在调用fopen()之后直接调用flock(),然后,在关闭一个文件之前再次调用它来释放锁定。

 

8.使用目录

使用mkdir()创建目录。mkdir()函数需要一个字符串和一个八进制整数。字符串表示到我们想要创建的目录的路径,整数表示我们想要为目录设置的模式。模式参数

只在UNIX系统下有效。

 

使用rmdir()删除一个目录

如果运行脚本的进程有权利这么做,并且目录为空的话,rmdir()函数允许我们从文件系统删除一个目录。

 

使用opendir()打开一个目录以供读取

$dh=opendir("testdir");$dh就是打开目录的目录句柄。

 

使用readdir()从一个目录读取内容

readdir()函数需要一个目录句柄并且返回包含了项目名的一个字符串。如果到达了目录的末尾,readdir()返回false。只返回其项目的名字,而不是完整的路径。

 

9.使用popen()打开到进程和离开进程的管道

$file_pointer=popen("some command",mode)

模式可以是r(读取)或w(写入)。

 

10.使用exec()运行命令

 

exec()函数是我们可以用来向shell传送命令的几个函数之一。exec()函数需要一个字符串并且可选地接受一个数组变量和一个标量变量,字符串表示要运行的命令的路径,数组变量将会包含命令的输出,标量变量将包含返回值(1或0)。我们可以直接使用exec()来访问已有的脚本并利用其功能。调用一个外部应用程序总是会增加脚本的负担,无论从时间上还是从内存使用上都是如此。

 

使用system()或passthru()运行命令

system()函数和exec()函数类似,因为它们都启动一个外部应用程序,并且它使用一个标量变量来存储返回值:

system("/path/to/somecommand",$return_val);

system()函数和exec()函数的不同在于,它直接向浏览器输出信息,而没有编程的干预。类似地,passthru()函数的语法和system()函数相同,但行为不同。使用passthru()的时候,shell命令的任何输出在返回给你的过程中不会缓存,这适用于运行产生二进制数据而不是简单的文本数据的命令。一个例子就是使用shell工具来定位一个图像并且将其发送回浏览器。

 

 

 

分享到:
评论

相关推荐

    php 文件目录操作类|Dir.php

    php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类php 文件目录操作类

    一个php文件目录操作类

    本文将详细讨论“一个PHP文件目录操作类”的概念、功能和应用,以及如何使用它来实现测试建立文件夹、复制文件夹、移动文件夹和删除文件夹等常见任务。 PHP提供了丰富的内置函数来处理文件和目录,如`mkdir()`用于...

    php快速删除目录及目录中的文件

    在FTP(File Transfer Protocol)中,删除文件或目录可能需要逐个操作,而PHP提供了更直接和快速的方法来实现批量删除。 首先,我们要了解PHP中的`rmdir()`函数,它用于删除一个空的目录。然而,如果目录中还有文件...

    php文件上传服务器指定目录实例

    本实例将探讨如何利用PHP实现文件上传到服务器的...通过以上知识点,你可以构建一个完整的PHP文件上传系统,包括上传、删除和移动文件的功能。在实际应用中,应根据具体需求调整和完善代码,确保系统的稳定性和安全性。

    php遍历目录和文件列表的类.zip

    总之,"php遍历目录和文件列表的类"是PHP文件系统操作的一个实用工具,它利用了PHP的内置函数并结合面向对象编程,为开发者提供了简洁、高效的代码结构,便于处理复杂的文件系统任务。通过学习和使用此类,你可以...

    生成excel文件到指定目录的函数php类库

    2. **引入库**:在你的PHP文件中,引入所需的类库: ```php use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; ``` 3. **创建工作簿**:创建一个新的Excel工作簿对象: `...

    php文件-浏览目录以及文件

    本主题将深入探讨如何使用PHP来实现一个文件和目录浏览的功能,特别关注如何查看特定类型的文件。 首先,我们需要了解PHP中的几个基本文件操作函数: 1. `scandir()`:这个函数用于扫描指定目录并返回其中的所有...

    PHP 文件操作函数

    通过理解和掌握这些PHP文件操作函数,开发者可以有效地处理文件系统,构建安全、高效的Web应用。在实际开发中,结合具体需求,灵活运用这些函数,能解决大多数文件相关的编程问题。在实践中不断积累经验,才能更好地...

    简单的在线文件管理PHP

    总结一下,这个"简单的在线文件管理PHP"系统主要利用了PHP的文件和目录操作函数,包括`scandir()`, `move_uploaded_file()`, `readfile()`, `unlink()`, `chmod()`, `chdir()`, `getcwd()`, `mkdir()`, 和 `rmdir()`...

    php文件目录操作类.zip

    总的来说,“php文件目录操作类”为PHP开发者提供了一个强大的工具,简化了文件和目录操作。通过理解和使用这个类,你可以更专注于业务逻辑,而不是基础的文件系统操作。在实际开发中,结合其他PHP框架和工具,这个...

    PHP生成压缩文,不带要压缩文件的根目录

    "PHP生成压缩文,不带要压缩文件的根目录"这个话题,主要涉及的是如何使用PHP的ZipArchive类来创建一个ZIP文件,但不包含源文件的根目录路径。下面将详细介绍这一知识点及其相关技术。 首先,我们需要了解PHP的Zip...

    php遍历目录和文件列表的类

    在PHP编程中,遍历目录和文件列表是常见的任务,特别是在处理文件系统操作、文件上传、备份或文件管理系统的开发中。本篇文章将详细介绍如何利用PHP实现这一功能,并结合提供的类来深入理解其实现原理。 首先,让...

    php实现文件共享(其于windows网上邻居原理)

     通过本php文件,在进行相关设置后,您可以方便的看到共享目录中的文件,以及相应的说明,便于能够迅速找到自己想要的文件。  找到想要的东西后,直接点击文件夹名打开共享文件夹。 使用方法: 1: 将index.php...

    PHP中文件读、写、删的操作(PHP中对文件和目录操作)

    在PHP中进行文件和目录操作是一项基础但重要的技能,它涉及到创建、读取、修改和删除文件和目录。通过熟练掌握这些操作,开发者可以有效地管理Web应用中的数据和资源。 首先,让我们来理解目录操作的相关函数。在...

    PHP上传文件到指定目录源代码

    以下是一个详细的关于如何使用PHP实现文件上传到指定目录的源代码解析。 首先,我们需要创建一个HTML表单,让用户选择要上传的文件。表单应包含一个`<input type="file">`元素,用于选取本地文件,以及一个提交按钮...

    PHP遍历目录及子目录所有文件并下载

    1.遍历当前及其子目录中的所有文件,文件放到http/down的目录...2.下载的代码fileDownProcess.php文件中除了echo $file_data;其他不能有echo。这点很重要,否则下载下来的文件无法使用。 3.不支持中文名称的文件下载。

    php查找当前目录下所有带有bom的文件

    标题“php查找当前目录下所有带有bom的文件”指的是使用PHP编程语言编写脚本,以检测指定目录及其子目录中是否存在带有UTF-8...通过理解PHP文件操作和BOM的概念,开发者可以更好地理解和利用这个脚本来优化他们的项目。

    php获取目录下所有文件及目录(多种方法)(推荐)

    同样地,排除`.`和`..`目录,并且对于每一个子目录,使用递归调用`getDir`函数,以获取更深层次的目录和文件内容。最终返回包含所有目录和文件名的数组。 第三种方法是对第二种方法的扩展,它利用`getDirContent`...

    PHP常用技术文之文件操作和目录操作总结

    这可能需要递归复制所有子目录和文件,使用函数如`copy()`和`mkdir()`。 4. 目录大小统计:计算目录大小可能需要遍历目录中所有文件,对它们的大小进行累加,然后得到整个目录的大小。 5. 移动目录:目录的移动...

    详谈PHP文件目录基础操作

    在学习和使用PHP文件目录操作时,除了要关注代码的功能实现之外,还需要考虑到安全因素。不当的文件操作可能会引发安全漏洞,如文件包含、文件上传等问题,因此在实际应用中要格外小心。开发者应该编写健壮的代码,...

Global site tag (gtag.js) - Google Analytics