検索
ホームページバックエンド開発PHPチュートリアル第6章 PHPのディレクトリとファイル操作_PHPチュートリアル

第6章 PHPのディレクトリとファイル操作_PHPチュートリアル

Jul 21, 2016 pm 03:21 PM
basenamedirnamephp1つそして操作する書類ファイル名目次パス戻る一部

1つ。ディレクトリ操作
basename -- パスのファイル名部分を返します
dirname -- パスのディレクトリ部分を返します
pathinfo -- ファイルパス情報を返します
realpath -- 正規化された絶対パス名を返します

コードをコピーします コードは次のとおりです:

$path = 'demo1.php';
echobasename($path);
echo '
;
echo ディレクトリ名 ($path);
$array_path = pathinfo($path);
echo 'basename : '.$array_path['basename']';
echo 'ディレクトリ名 : '.$array_path['dirname'].'
';
echo '拡張子 : '.$array_path['extension'].'
';
echo 'ファイル名 : ' .$array_path[ 'FILENAME']. '& LT; ASIC6 tExtent: PHP
ファイル名: Demo1
2.ディスク、ディレクトリ、ファイル数
1. ファイル サイズとディスク容量を表示します
filesize -- ファイル サイズを取得します
disk_free_space -- ディレクトリ内の使用可能な容量を返します
disk_total_space -- ディレクトリの合計ディスク サイズを返します



コードをコピーします

コードは次のとおりです:


$path ='demo2.php';
$path = realpath($path);
$drive = 'c:';ファイルサイズ($path)/ 1024,2).'kb'.'
';
echoround(disk_free_space($drive)/1024/1024/1024,2).'GB'.'';
echoround(disk_total_space($drive)/1024/1024/1024,2).'GB'.'
> 出力 0.26kb
10.61GB
30.01GB

2. ファイルのさまざまな時刻を取得します
fileatime -- ファイルの最終アクセス時刻を取得します
filectime -- ファイルの i ノード変更時刻を取得します
filemtime -- ファイルの変更時刻を取得します



コードをコピーします

コードは次のとおりです:


$file = realpath ( '../Basic5/demo3.php' );
$date_format = 'Y-m-d h:i:s' ;
echo '最終アクセス時刻 : '.date ( $date_format , fileatime ( $file ) ) '
';
echo '最終変更時刻 : '.date ( $date_format , filectime ( $file ) ) 。 '
';
echo '最後の変更時刻: '.date ( $date_format, filemtime ( $file ) ) ';
output
lastest accessing time : 2011-12-18 04:26:49
lastest change time : 2011-12-18 04:26:49
lastest modify time : 2011-12-18 04:29:15

三.文件处理
文件读写的两种方式:
1.php所有版本都支持的方法:
fopen -- 打开文件或者 URL
fclose -- 关闭一个已打开的文件指针
fwrite -- 写入文件(可安全用于二进制文件)
表 1. fopen() 中 mode 的可能值列表

mode

说明

'r'

只读方式打开,将文件指针指向文件头。

'r+'

读写方式打开,将文件指针指向文件头。

'w'

写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

'w+'

读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

'a'

写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

'a+'

读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

'x'

创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

'x+'

创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

复制代码 代码如下:

$fp = fopen('file1.txt','w');
$outStr = "my name is anllin,\r\nmy age is 29.";
fwrite($fp,$outStr,strlen($outStr));
fclose($fp);
?>

output
my name is anllin,
my age is 29.
2.php5新加入的方法
file_put_contents -- 将一个字符串写入文件
复制代码 代码如下:

file_put_contents('file2.txt',"my name is anllin,\r\nmy age is 29.");
?>

output
my name is anllin,
my age is 29.
读出文件内容的方法:

函数

功能

Fgetc()

读出一个字符,并将指针移到下一个字符

Fgets()

读出一行字符,可以指定一行显示的长度。

Fgetss()

从文件指针中读取一行并过滤掉HTML标记

Fread()

读取定量的字符

Fpassthru()

输出文件到指定处的所有剩余数据

File()

将整个文件读入数组中,以行分组

Readfile()

读入一个文件并写入到输出缓冲

File_get_contents()

将整个文件读入一个字符串

Feof()

判断读完文件函数

File_exists()

查看文件是否存在

サンプル ファイル file1.txt の内容は次のとおりです:
私の名前は anllin、
私の年齢は 29 です。
fgetc -- ファイル ポインタから文字を読み取ります
Demo.php
コードをコピーします コードは次のとおりです次のように:
$fp = fopen('file1.txt','r');
echo fgetc($fp);
?>


出力:
my
fgets -- ファイル ポインタから 1 行を読み取ります



コードをコピーします
コードは次のとおりです: $fp = fopen( 'file1.txt','r') ;
echo fgets($fp);


私の名前はアンリンですは 29 です。
fgetss -- ファイル ポインタから 一行読み込んで HTML タグを除外します


コードをコピーします

コードは次のとおりです:

$fp = fopen('file3 .txt','w'); $outStr = "私の名前は anllin"; ; $ftp = fopen('file3.txt','r '); fgetss($ftp);

出力
私の名前はアンリンですファイルを読み取ります (バイナリ ファイルには安全です)



コードをコピーします

コードは次のとおりです:

$filename = 'file1.txt'
$fp = fopen($filename,'; r');
$contents = fread($fp,filesize($ filename));
fclose($fp);
私の名前は 29 です. fpassthru -- ファイル ポインターに残っているすべてのデータを出力します

コードをコピーします

コードは次のとおりです:


$filename = 'file1.txt'; ($filename,'rb');
$leftSize = fpassthru($fp);
fclose($fp);


私の名前は 29 です。 33
file -- ファイル全体を配列に読み込みます
コードをコピーします
コードは次のとおりです。


$lines = file('file1.txt');
foreach ($)行を $line_num =>
{
echo $line_num.'
'
}

output
0 : 私の名前はアンリンです。 1 : 私の年齢は 29 です。
readfile -- ファイルを出力します
コードをコピーします コードは次のとおりです:

$size = readfile('file1.txt');
echo $size;
?>


出力
私の名前はanllin、私の年齢は29.33です
file_get_contents -- ファイル全体を文字列に読み込みます (php5.0の新機能)


コードをコピーします

$contents = file_get_contents('file1.txt'); output
私の名前はアンリン、年齢は 29 です。 -- ファイル ポインターがファイルの末尾に到達したかどうかをテストします



コードをコピーします

コードは次のとおりです:


php
$fp = fopen('file1.txt','r' );
while(!feof($fp))
{ echo fgetc($fp); output ; 私の名前はアンリン、年齢は 29 です。
file_exists -- ファイルまたはディレクトリが存在するかどうかを確認します



コードをコピーします

コードは次のとおりです:



$filename = 'file1.txt';
if(file_exists($filename)) { echo 'ファイル読み取り書き込み操作を実行'; } else
{
echo '探しているファイルは存在しません';
?>


出力
ファイルの読み取りおよび書き込み操作を実行します
filesize -- ファイルのサイズを取得します


コードは次のとおりです:


$file_size = filesize('file1.txt');
echo $file_size ;
output
33
unlink -- 删除文件
复制代码 代码如下:

$isDeleted = unlink('file3.txt');
echo $isDeleted;
?>

output
1
rewind -- 倒回文件指针的位置
ftell -- 返回文件指针读/写的位置
fseek -- 在文件指针中定位
复制代码 代码如下:

$fp = fopen ( 'file1.txt', 'r' );
fgetc ( $fp );
fgetc ( $fp );
echo ftell ( $fp ) . '
';
rewind ( $fp );
echo ftell ( $fp ) . '
';
fgetc ( $fp );
fgetc ( $fp );
echo ftell ( $fp ) . '
';
fseek($fp,0);//same as rewind ($fp)
echo ftell ( $fp ) . '
';
?>

output
2
0
2
0
Flock的操作值

操作值

意义

LOCK_SH(以前为1)

读写锁定。这意味着文件可以共享,其他人可以读该文件

LOCK_EX(以前为2)

写操作锁定。这是互斥的,该文件不能被共享

LOCK_UN(以前为3)

释放已有的锁定

LOCK_NB(以前为4)

防止在请求加锁时发生阻塞

flock -- 軽量のコンサルテーション ファイル ロック
コードをコピー コードは次のとおりです:

$filename = 'file1.txt'
$fp = fopen($filename,'rb'; );
flock($fp,LOCK_EX);//ロックされた
$contents = fread($fp,filesize($filename));
flock($fp,LOCK_UN);//ロック解除された
echo $contents; $fp ;


コードをコピーします

コードは次のとおりです:


$dir= opendir('../Basic6')
while(!!$file = readdir($) dir))
{ echo $file.'
' } closedir($dir)?>
出力
..
.buildpath
.project
.settings
demo1.php
demo10.php
demo11.php
demo12.php
demo13.php
demo14.php
demo15.php
demo16.php
demo17.php
demo18.php
demo19.php
demo2.php
demo20 .php
demo3.php
demo4.php
demo5.php
demo6.php
demo7.php
demo8.php
demo9.php
file1.txt
file2.txt
scandir -- 指定されたパス内のファイルとディレクトリを一覧表示します



コードをコピーします

コードは次のとおりです:


$files = scandir('../Basic6')
foreach($files as $file)
{
echo $file .'
';
} ?> 出力
..
.buildpath
.settings
demo1.php
demo11.php
デモ12.php
デモ13 .php
demo14.php
demo15.php
demo16.php
demo17.php
demo18.php
demo2.php
demo20.php
demo21.php
demo3.php
demo4.php
demo5.php
demo6.php
デモ7.php
demo8.php
demo9.php
file1.txt
file2.txt
rename -- ファイルまたはディレクトリの名前を変更します



コードをコピーします

コードは次のとおりです:


rename('demo1.php ','demo01.php');
if(file_exists('demo01.php'))
{
echo 'ファイル名変更成功'
}
else
{
echo 'ファイル名の変更に失敗しました';
} ?> ; 出力
ファイルの名前変更が成功しました



コードをコピーします

コードは次のとおりです:


rmdir ('123');
if(file_exists('123') )
{
echo 'ファイルの削除に失敗しました'
}
?>ファイル成功


http://www.bkjia.com/PHPjc/324803.htmlwww.bkjia.comtru​​e
http://www.bkjia.com/PHPjc/324803.html

技術記事

1つ。ディレクトリ操作basename -- パスのファイル名部分を返します dirname -- パスのディレクトリ部分を返します pathinfo -- ファイル パスに関する情報を返します realpath -- 正規化された絶対パスを返します...





声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHP:サーバー側のスクリプト言語の紹介PHP:サーバー側のスクリプト言語の紹介Apr 16, 2025 am 12:18 AM

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPとWeb:その長期的な影響を調査しますPHPとWeb:その長期的な影響を調査しますApr 16, 2025 am 12:17 AM

PHPは過去数十年にわたってネットワークを形成しており、Web開発において重要な役割を果たし続けます。 1)PHPは1994年に発信され、MySQLとのシームレスな統合により、開発者にとって最初の選択肢となっています。 2)コア関数には、動的なコンテンツの生成とデータベースとの統合が含まれ、ウェブサイトをリアルタイムで更新し、パーソナライズされた方法で表示できるようにします。 3)PHPの幅広いアプリケーションとエコシステムは、長期的な影響を促進していますが、バージョンの更新とセキュリティの課題にも直面しています。 4)PHP7のリリースなど、近年のパフォーマンスの改善により、現代の言語と競合できるようになりました。 5)将来的には、PHPはコンテナ化やマイクロサービスなどの新しい課題に対処する必要がありますが、その柔軟性とアクティブなコミュニティにより適応性があります。

なぜPHPを使用するのですか?利点と利点が説明されましたなぜPHPを使用するのですか?利点と利点が説明されましたApr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

神話を暴く:PHPは本当に死んだ言語ですか?神話を暴く:PHPは本当に死んだ言語ですか?Apr 16, 2025 am 12:15 AM

PHPは死んでいません。 1)PHPコミュニティは、パフォーマンスとセキュリティの問題を積極的に解決し、PHP7.xはパフォーマンスを向上させます。 2)PHPは最新のWeb開発に適しており、大規模なWebサイトで広く使用されています。 3)PHPは学習しやすく、サーバーはうまく機能しますが、タイプシステムは静的言語ほど厳格ではありません。 4)PHPは、コンテンツ管理とeコマースの分野で依然として重要であり、エコシステムは進化し続けています。 5)OpcacheとAPCを介してパフォーマンスを最適化し、OOPと設計パターンを使用してコードの品質を向上させます。

PHP対Pythonの議論:どちらが良いですか?PHP対Pythonの議論:どちらが良いですか?Apr 16, 2025 am 12:03 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトの要件に依存します。 1)PHPは、Web開発に適しており、学習しやすく、豊富なコミュニティリソースですが、構文は十分に近代的ではなく、パフォーマンスとセキュリティに注意を払う必要があります。 2)Pythonは、簡潔な構文と学習が簡単なデータサイエンスと機械学習に適していますが、実行速度とメモリ管理にはボトルネックがあります。

PHPの目的:動的なWebサイトの構築PHPの目的:動的なWebサイトの構築Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 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)準備方法を使用して前処理ステートメントを作成し、プレースホルダーを使用してデータを渡し、メソッドを実行します。 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ヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

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

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

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)