ディレクトリおよびファイル操作の詳細な説明 - PHP

WBOY
リリース: 2016-06-13 12:36:49
オリジナル
1078 人が閲覧しました

blueidea.com より転載

1. はじめに
どのコンピュータデバイスにおいても、ファイルは必要なオブジェクトであり、Web プログラミングではファイル操作は常に Web プログラムです。 CMS システムでは、ファイル ディレクトリの生成やファイル (フォルダー) の編集などの操作が頻繁に行われます。ここでは、これらの機能を PHP で作成し、その使用方法を詳しく説明します。対応する関数については、PHP マニュアルを参照してください。ここでは、重要な点と注意が必要な点のみをまとめます。 (これは、PHP マニュアルには記載されていません)

2. ディレクトリ操作
最初の導入は、ディレクトリから読み取る関数、opendir()、readdir()、closedir() です。使用すると、最初にファイル ハンドルが開かれ、次に反復的にリストされます:
$base_dir = "filelist/";
$fso = opendir($base_dir);
echo $base_dir."
while ($flist=readdir($fso) )){
echo $flist."
;
}
closedir($fso);
これはファイルを返すプログラムです

ファイル ディレクトリの下にあるディレクトリ (0 個のファイルは false を返します)

ディレクトリ情報を知る必要がある場合は、ディレクトリ部分に対して dirname($path) と Basename($path) を使用してそれぞれ返すことができます。

作成コマンド:
mkdir($path,0777)
、0777 は許可コードです。 , 非ウィンドウ条件で umask() 関数を使用して設定できます。

rmdir($path)
は、$path 内のパスを持つファイルを削除します。 directory クラスはファイル ディレクトリも操作します。これは、最初にファイル ハンドルを使用して開き、次にポインタを使用して読み取ります。マニュアルはこちら:
$d = dir("/etc/php5");
echo "ハンドル: " . $d->handle "n"; "パス: " . $ d->path . "n";
while (false !== ($entry = $d->read()) {
echo $entry." ;
}
$d->close();

出力:
ハンドル: リソース ID #2
パス: /etc/php5 🎜>.
..
apache
cgi
cli
ファイルの属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、

以下ではファイル操作に焦点を当てます。


ファイルの読み取り

まず、ファイルが読み取れるかどうかを確認します (権限の問題)。ファイルが存在する場合は、is_readable 関数を使用して情報を取得します。:
$file = 'dirlist.php'; if (is_readable($file) == false ) {
die('ファイルが存在しないか、読み取ることができません');
} else {
echo '存在します';
?>
ファイルの存在を判断する関数 file_exists もありますが (以下に示します)、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合は、
< を使用できます。 ?php
$file = "filelist.php";
if (file_exists($ file) == false) {
die('ファイルが存在しません');
$ data = file_get_contents($file);
echo htmlentities($data);
?> ;
ただし、file_get_contents 関数は、最初にファイルへのハンドルを作成できます。次に、ポインタを使用してファイル全体を読み取ります:
$fso = fopen($cacheFile, 'r');
$ data = fread($fso, filesize($cacheFile));
fclose($) fso);
バイナリ ファイルを読み取る別の方法もあります:
$data = implode('', file ($file));


ファイルの書き込み

ファイルを読み取るのと同じ方法で、最初にそれが書き込めるかどうかを確認します:

$file = 'dirlist.php';
if (is_writable($file) = = false) {
die("私は鶏の羽です、私はできません");
}
?> ;
書ける場合は、 file_put_contents 関数を使用して次のように書くことができます。
$file = 'dirlist.php';
if (is_writable($file) == false) {
die('私は鶏の羽です、私はできません');
}
$data = '私は卑劣です';
file_put_contents ($file, $data);
file_put_contents 関数は新しく導入されました。 php5 の関数 (存在するかどうかわからない場合は、最初に function_exists 関数を使用して確認してください)。以下のメソッドは使用できません:
$f = fopen($file, ' w');
fwrite($f, $data);

ファイルを書き込むときにロックする必要がある場合があります。
function queue_page($pageurl,$pagedata){
if(!$fso=fopen($pageurl,'w')){
$this->warns('キャッシュ ファイルを開けません。' ) ;//trigger_error
return false;
}
if(!flock($fso,LOCK_EX)){//LOCK_NB, 排他的ロック
$this->warns('ロックできませんキャッシュ ファイル。');//trigger_error
return false;
if(!fwrite($fso,$pagedata)){//バイト ストリームを書き込み、シリアル化して他のフォーマットを書き込む
$this->warns('キャッシュ ファイルを書き込めません。');/ /trigger_error
return false;
}
flock($fso,LOCK_UN);//ロックを解除します
fclose($fso);
return true;
ファイルのコピーと削除

PHP でファイルを削除するのは非常に簡単です。リンク解除関数を使用するのは簡単です:
$file = 'dirlist.php' ;
$ result = @unlink ($file);
if ($result == false) {
echo '蚊は追い払われました'
} else {
echo ' ';
}
?>

ファイルのコピーも簡単です:
$file = 'yang .txt';
$newfile = 'ji.txt'; # このファイルの親フォルダーは書き込み可能でなければなりません
if (file_exists($file) == false) {
die ('サンプルはオンラインではないためコピーできません');
}
$result = copy($file, $newfile);
if ($result == false) {
echo 'メモリをコピーします';
}
?>
rename() 関数を使用してフォルダーの名前を変更することもできます。


ファイル属性の取得

いくつかの一般的なものについて説明します 関数:
最新の変更時刻を取得します:
$file = 'test.txt'
echo date('r ', filemtime($file));
?>
返されるタイムスタンプは、キャッシュ テクノロジで一般的に使用される

関連するファイルです。 )、最終アクセス時刻のファイル権限、すべて または、すべてのグループまたは他の i ノードのメタデータが更新された時刻、fileowner() 関数はファイル所有者を返します。
$owner = posix_getpwuid(fileowner($file));
(非ウィンドウ システム)、ileperms() ファイルのアクセス許可を取得します。
$file = 'dirlist.php'
$perms = substr('%o' , fileperms($file)), -4);
echo $perms;
?>
filesize() はファイル サイズのバイト数を返します:
// 出力は次のようになります: somefile.txt: 1024 bytes
echo $filename . ': ' ' bytes'; ?>
ファイルのすべての情報を取得するための戻り配列があります。 Function stat() 関数:
$file = 'dirlist.php'; stat($file);
var_dump($perms);
? >
ここでは展開されません。
4. まとめ


上記でいくつか簡単にまとめましたが、上記の機能を使いこなせていれば、PHP ファイルの操作には大きな問題はありません。ファイル部分も PHP を学ぶ上で非常に重要な部分ですので、無視しないでください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!