Php 简明教程

PHP - File Existence

在对文件执行任何处理之前,经常实用的是检查你现在尝试打开的文件是否确实存在。如果不是,程序可能会发出 runtime exception

PHP 的内置函数库在这方面提供了一些实用函数。本章中讨论的某些函数有 −

  1. file_exists() − 测试文件是否存在

  2. is_file() − fopen() 返回的句柄引用的是文件还是目录

  3. is_readable() − 测试你打开的文件是否允许读取数据

  4. is_writable() − 测试文件是否允许写入数据

The file_exists() Function

此函数适用于文件和目录。它检查给定的文件或目录是否存在。

file_exists(string $filename): bool

此函数的唯一参数是一个字符串,代表带有完整路径的文件/目录。此函数将根据文件是否存在返回真或假。

Example

以下程序检查文件 “hello.txt” 是否存在。

<?php
   $filename = 'hello.txt';
   if (file_exists($filename)) {
      $message = "The file $filename exists";
   } else {
      $message = "The file $filename does not exist";
   }
   echo $message;
?>

如果当前目录中存在文件,则消息为 −

The file hello.txt exists

如果没有,则消息为 −

The file hello.txt does not exist

Example

指向文件的字符串可能具有相对路径或绝对路径。假设 “hello.txt” 文件可在当前目录中的 “hello” 子目录中找到。

<?php
   $filename = 'hello/hello.txt';
      if (file_exists($filename)) {
   $message = "The file $filename exists";
   } else {
      $message = "The file $filename does not exist";
   }
   echo $message;
?>

它将生成以下 output

The file hello/hello.txt exists

Example

尝试如下指定绝对路径 −

<?php
   $filename = 'c:/xampp/htdocs/hello.txt';
   if (file_exists($filename)) {
      $message = "The file $filename exists";
   } else {
      $message = "The file $filename does not exist";
   }
   echo $message;
?>

它将生成以下 output

The file c:/xampp/htdocs/hello.txt exists

The is_file() Function

file_exists() 函数为现有文件和目录返回 trueis_file() 函数可帮助您确定是否为文件。

is_file ( string $filename ) : bool

以下示例展示了 is_file() 函数的工作原理 −

<?php
   $filename = 'hello.txt';

   if (is_file($filename)) {
      $message = "$filename is a file";
   } else {
      $message = "$filename is a not a file";
   }
   echo $message;
?>

output 表明它是一个文件 −

hello.txt is a file

现在,将 “$filename” 更改为目录并查看结果 −

<?php
   $filename = hello;

   if (is_file($filename)) {
      $message = "$filename is a file";
   } else {
      $message = "$filename is a not a file";
   }
   echo $message;
?>

现在,您将得知 “hello” 不是文件。

请注意, is_file() 函数接受 $filename ,仅在 $filename 为文件且存在时返回 true

The is_readable() Function

有时,您可能希望事先检查是否可以读取文件。 is_readable() 函数可以确定此事实。

is_readable ( string $filename ) : bool

Example

下面是 is_readable() 函数工作原理的示例 −

<?php
   $filename = 'hello.txt';
   if (is_readable($filename)) {
      $message = "$filename is readable";
   } else {
      $message = "$filename is not readable";
   }
   echo $message;
?>

它将生成以下 output

hello.txt is readable

The is_writable() Function

您可以使用 is_writable() 函数检查文件是否存在以及是否可以在给定文件上执行写操作。

is_writable ( string $filename ) : bool

Example

以下示例展示了 is_writable() 函数的工作原理 −

<?php
   $filename = 'hello.txt';

   if (is_writable($filename)) {
      $message = "$filename is writable";
   } else {
      $message = "$filename is not writable";
   }
   echo $message;
?>

对于普通归档文件,程序指出它是可写的。但是,将其属性更改为 “read_only” 并运行程序。您现在获得 −

hello.txt is writable