検索
ホームページバックエンド開発PHPチュートリアルPHPファイル関数とディレクトリ関数の概要

以下のエディターは、PHP の一般的なファイル関数とディレクトリ関数に基づいた記事を提供します。編集者はこれがとても良いと思ったので、参考として共有します。エディターをフォローして一緒に見てみましょう

1. よく使われるファイル関数ライブラリ

1.basename(); パスのファイル名部分を返します。


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

パラメータ: path パス。 Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。それ以外の環境ではスラッシュ(/)です。

suffix ファイル名がsuffixで終わる場合、この部分も削除されます。

戻り値: パスの基本ファイル名を返します。


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

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

2. dirname() -- パス


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

のディレクトリ部分を返します。パラメータ: path、パス。 Windows では、スラッシュ (/) とバックスラッシュ () の両方をディレクトリ区切り文字として使用できます。他の状況では、スラッシュ (/) になります。

戻り値: パスの親ディレクトリを返します。 パスにスラッシュがない場合は、現在のディレクトリを示すドット (「.」) が返されます。それ以外の場合、返される文字列は、パスの末尾の /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 解析されるパス。

オプション 指定すると、PATHINFO_DIRNAME、PATHINFO_BASENAME、PATHINFO_EXTENSION または PATHINFO_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 を返します。 filetype() は、stat 呼び出しが失敗した場合、またはファイル タイプが不明な場合にも E_NOTICE メッセージを生成します。


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

5、fstat() および stat();

⑴、fstat() - 開かれたファイル ポインターを通じてファイル情報を取得します


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

パラメータ: ファイル システム ポインターを処理します。これは通常 fopen() によって作成されるリソースです。

戻り値: ファイルの統計情報を含む配列を返します。配列の形式については、マニュアルの 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 )
//给出一个包含有一个目录的字符串,本函数将根据相应的文件系统或磁盘分区返回可用的字节数。 

パラメータ: ディレクトリ ファイル システム ディレクトリまたはディスク パーティションの空き領域を返します。


rreee

8、disk_total_space();
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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの現在のステータス:Web開発動向を見てくださいPHPの現在のステータス:Web開発動向を見てくださいApr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHP対その他の言語:比較PHP対その他の言語:比較Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHP対Python:コア機能と機能PHP対Python:コア機能と機能Apr 13, 2025 am 12:16 AM

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHP:Web開発の重要な言語PHP:Web開発の重要な言語Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP:多くのウェブサイトの基礎PHP:多くのウェブサイトの基礎Apr 13, 2025 am 12:07 AM

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

誇大広告を超えて:今日のPHPの役割の評価誇大広告を超えて:今日のPHPの役割の評価Apr 12, 2025 am 12:17 AM

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPの弱い参照は何ですか、そしていつ有用ですか?PHPの弱い参照は何ですか、そしていつ有用ですか?Apr 12, 2025 am 12:13 AM

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

PHPで__invoke Magicメソッドを説明してください。PHPで__invoke Magicメソッドを説明してください。Apr 12, 2025 am 12:07 AM

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール