ホームページ  >  記事  >  バックエンド開発  >  PHP とファイル操作_PHP チュートリアル

PHP とファイル操作_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:12:09850ブラウズ

1. ディレクトリ操作

1 つ目は、ディレクトリから読み取られる関数、OpenDir ()、Readdir ()、CloseDir () です。使用する場合は、最初にファイル ハンドルを開いてから、
:
を繰り返します。 $base_dir="ファイルリスト/";
$fso=opendir($base_dir);
echo $base_dir."


";
while($flist=readdir($fso)){
echo $flist."
";
}
クローズドIR($fso)
?>

ファイルディレクトリ配下のファイルとディレクトリを返すプログラムです(0ファイルの場合はfalseを返します)

ディレクトリの情報を知る必要がある場合は、 dirname($path) と Basename($path) を使用して、それぞれパスのディレクトリ部分とファイル名部分を返すことができます。ビュースペースの残りのスペース。

コマンドの作成:

mkdir($path,0777): 0777 は許可コードであり、非ウィンドウ条件下で umask() 関数によって設定できます。

rmdir($path): $path 内のパスを持つファイルを削除します。


2. ファイル操作


● 新しいファイル

まず、作成するファイルが配置されているディレクトリのアクセス許可を確認します。推奨デバイスは 777 です。新しいファイルの名前には絶対パスを使用することをお勧めします。
$filename="test.txt";
$fp=fopen("$filename", "w+"); // ファイルポインタを開いてファイルを作成します
if ( !is_writable($filename) ){
die("ファイル:" .$filename. "書き込み不可です。確認してください!");
}
//fwrite($filename, "$filename に書きたいものは何でも。";
fclose($fp); // ポインターを閉じます


● ファイルを読む

まず第一に、これは読み取り (権限) ができるか、存在するかを確認するためのファイルです。IS_READABLE 関数を使用して情報を取得できます。:

$file = 'dirlist.php';
if (is_readable($file) == false) {
die('ファイルが存在しないか、読み取ることができません');
} その他 {
「存在」をエコーし​​ます;
}
?>

ファイルの存在を判断するための file_exists (以下にデモ) もありますが、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合に使用できます

$file = "filelist.php";
if (file_exists($file) == false) {
die('ファイルが存在しません');
}
$data = file_get_contents($file);
echo htmlentities($data);
?>
ただし、file_get_contents 関数は以前のバージョンではサポートされていません。まずファイルへのハンドルを作成してから、ポインターを使用してファイル全体を読み取ることができます。
バイナリ ファイルを読み取る別の方法もあります:

$data = implode('', file($file));

●ファイルを書き込む

ファイルの読み取りと同様に、まず書き込み可能かどうかを確認します:

$file = 'dirlist.php';
if (is_writable($file) == false) {
die(「あなたには書く権利はない!」);
}
?>

書き込める場合は、file_put_contents 関数を使用して次のように書き込むことができます:


$file = 'dirlist.php';

if (is_writable($file) == false) {
死ね(「私は鶏の羽だ、無理だ」);
}
$data = '私は卑劣です、私は欲しいです';
file_put_contents ($file, $data);
?>

file_put_contents 関数は php5 で新しく導入された関数です (存在しない場合は、function_exists 関数を使用して最初に確認してください)。以下の方法を使用できます。

$f = fopen($file, 'w');

fwrite($f, $data);

fclose($f);


交換してください

ファイルを書き込むとき、場合によってはファイルをロックしてから次のように書き込む必要があります:

関数cache_page($pageurl,$pagedata){
If(!$fso=fopen($pageurl,'w')){
$this->warns('キャッシュ ファイルを開けません。');//trigger_error
false を返す;
}
If(!flock($fso,LOCK_EX)){//LOCK_NB、排他ロック
$this->warns('キャッシュ ファイルをロックできません。');//trigger_error
false を返す;
}
If(!fwrite($fso,$pagedata)){//バイトストリームを書き込み、シリアル化して他の形式を書き込みます
$this->warns('キャッシュ ファイルに書き込めません。');//trigger_error
false を返す;
}
flock($fso,LOCK_UN);//ロックを解除します
fclose($fso);
true を返します;
}

● ファイルのコピー、削除

PHP でのファイルの削除は非常に簡単です。リンク解除関数を使用して簡単に操作できます:

$file = 'dirlist.php';
$result = @unlink ($file);
if ($result == false) {
echo 「蚊がいなくなった」;
} その他 {
echo 「車で逃げることはできません」;
}
?>

以上です

ファイルのコピーも簡単です:


$file = 'yang.txt';
$newfile = 'ji.txt'; # このファイルの親フォルダーは書き込み可能である必要があります
if (file_exists($file) == false) {
die (「デモはオンラインではないため、コピーできません」);
}
$result = copy($file, $newfile);
if ($result == false) {
echo 'コピーメモリ OK';
}
?>

rename() 関数を使用してフォルダーの名前を変更できます。

これらの関数を組み合わせて他の操作も実現できます。

● ファイル属性を取得する

いくつかの一般的な機能について説明します:
最新の変更時刻を取得します:


$file = 'test.txt';
echo date('r', filemtime($file));
?>


返されるのは、キャッシュ技術で一般的に使用される UNIX タイムスタンプです。

ファイルのアクセス許可、所有者、すべてのグループ、または inode 内のその他のメタデータが更新されると、fileowner() 関数がファイルの所有者を返します。
最終アクセス時刻の取得も行われます。 fileatime()、filectime() $owner = posix_getpwuid(fileowner($file));
(非ウィンドウ システム)、ileperms() はファイルのアクセス許可を取得します、

$file = 'dirlist.php';
$perms = substr(sprintf('%o', fileperms($file)), -4);
エコー $perms;
?>

filesize() はファイル サイズをバイト単位で返します:

// 出力は次のようになります: somefile.txt: 1024 バイト

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) ';

?>

ファイルのすべての情報を取得するには、配列を返す stat() 関数があります。

$file = 'dirlist.php';
$perms = stat($file);
var_dump($perms);
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477220.html技術記事 1. ディレクトリ操作は、ディレクトリから読み取る最初の関数、opendir()、readdir()、closedir() を使用すると、最初にファイル ハンドルが開かれ、次に反復的にリストされます。 fso= オープンしました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。