ホームページ > バックエンド開発 > PHPチュートリアル > PHPファイルディレクトリ操作機能学習メモ_PHPチュートリアル

PHPファイルディレクトリ操作機能学習メモ_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:49:28
オリジナル
730 人が閲覧しました

PHPにおけるファイル操作は、ファイルの読み書き操作、削除操作、判定操作、許可操作、一部のファイル検索などにすぎません。私が学んだPHPのファイル操作関数を投稿させていただきます。

ファイル操作機能

1. ファイル名を取得します:basename();

2. ファイルが存在するディレクトリを取得します: dirname();

3. Pathinfo() はファイル情報を取得し、パス、ファイルの完全名、ファイル名、拡張子を含む配列を返します。例:

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

$file = '/com/netingcn/error.log';
print_r(パス情報($file));
結果は次のようになります:
配列(
[ディレクトリ名] => /com/netingcn
[ベース名] => error.log
[拡張子] => ログ
[ファイル名] => エラー
)

4. ファイルが存在するかどうかを確認します: is_file();

5. ディレクトリが存在するかどうかを確認します: is_dir();

6. ファイルまたはディレクトリが存在するかどうかを確認します: file_exists();

7. ファイルのすべての内容を読み取ります: file() または file_get_contents()。file() は 1 行の要素を含む配列を返し、file_get_contents() はファイルの内容全体を文字列として返します。

8. 次のようなファイル fwrite を書き込みます。

コードは次のとおりです$handler = fopen($file, 'w'); // w は前のコンテンツをフラッシュし、a は追加します
コードをコピー
fwrite($handler, 'コンテンツ');

fclose($handler); //開いているファイル ハンドルを忘れずに閉じてください。 9. ファイルの読み取り操作がたくさんあります

ここでいくつかの簡単な紹介をします:


コードは次のとおりです$handler = fopen($file, 'r');
コードをコピー

while(!feof($handler)) {

$datas[] = fgets($handler) // コンテンツの行を読み取ります

}

while(!feof($handler)) {

$datas[] = fgetss($handler); // コンテンツの行を読み取り、HTML タグを追加します

}

while(!feof($handler)) {

$datas[] = fgetcsv($handler); // コンテンツの行を読み取り、csv フィールドを解析します

}

$content = fread($handler, $strLength) //指定されたロングリードの文字を読み取ります

fclose($handler);

phpのファイル読み込み操作関数

1. fread() を使用して

を取得します。 以下の php コードをご覧ください:


コードは次のとおりです $file = "phpddt.txt";

実行結果:
PHP Diandiantong (www.bKjia.c0m) は、PHP 開発に焦点を当てており、専門的な PHP チュートリアルを提供しています。
2.fseek (リソース ハンドル, int offset [, int whence])、オフセット offset へのポインタをオフセットします。
(php.txtの内容は[www.bKjia.c0mへようこそ]です)
次の PHP コードを実行した後:

コードをコピー
$fp = fopen($file,"r");
if ($fp){
while(!feof($fp)){
// 2 番目のパラメータは読み取り長です
$data = fread($fp, 1000);
}
fclose($fp);
}
$data をエコー;
?>

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


$file = "php.txt";
$fp = fopen($file,"r");
//ファイルポインタを8バイト目以降にジャンプ
fseek($fp,8);
//データの読み取り
$data = fgets($fp,4096);
$data をエコー;
?>

結果は次のとおりです:
www.bKjia.c0m へ
wherece パラメータの説明は次のとおりです:
SEEK_SET - オフセットバイトに等しい位置を設定します。
SEEK_CUR - 位置を現在位置にオフセットを加えたものに設定します。
SEEK_END - ファイルの末尾にオフセットを加えた位置を設定します。 (課題)
wherece が指定されていない場合、デフォルトは SEEK_SET です。
3. ftell() 関数を使用してポインター位置のオフセットを取得します
PHP のデモコードは次のとおりです:

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


$file = "phpddt.txt";
$fp = fopen($file,"r");
//ファイルポインタを8バイト目以降にジャンプ
fseek($fp,8);
//ポインタ位置のオフセットを取得します
エコー ftell($fp);
?>


実行結果:
8
4. rewind() 関数は、ファイル ポインタを指定された場所に移動します
5. parse_ini_file() 関数は、.ini ファイルを解析し、多次元配列を簡単に解析します。詳細については、以下の php チュートリアルをご覧ください。
まず、phpddt.ini ファイルを保存します。ファイルの内容は次のとおりです。 [web1]
URL= "www.bKjia.c0m"
名前 = php 点電通
[web2]
URL= "www.baidu.com"
名前 = 百度検索
次の PHP コードを記述します:

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

$file_arr = parse_ini_file("phpddt.ini",true);
print_r($file_arr);
?>

実行結果は以下の通りです:

配列
(
[web1] => 配列
(
[url] => www.bKjia.c0m
[名前] => )

[web2] => 配列

(

[url] => [名前] = & gt; 百度検索
)

)

ディレクトリ操作


最初の導入は、ディレクトリから読み取る関数、opendir()、readdir()、closedir() です。使用すると、最初にファイル ハンドルが開かれ、次に反復的にリストされます。

コードは次のとおりです

コードをコピー $base_dir = "ファイルリスト/"; $fso = opendir($base_dir);
echo $base_dir."
;

" while($flist=readdir($fso)){
$flist をエコーし​​ます。"
;
" }
クローズドIR($fso)
?>



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

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

コマンドの作成:

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

mkdir($path,0777)

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

rmdir($path)

$path にパスがあるファイルは削除されます。

dir -- ディレクトリ クラスは、ファイル ディレクトリを操作するための重要なクラスでもあり、read、rewind、close の 3 つのメソッドを持ちます。これは、最初にファイル ハンドルを使用してファイルを開きます。そして、ポインタを使用してそれを読み取ります。ここで php マニュアルを参照してください:

コードは次のとおりですコードをコピー出力:
$d = dir("/etc/php5");
echo "ハンドル: " . $d->ハンドル . "n";
echo "パス: " . $d->パス . while (false !== ($entry = $d->read())) {
echo $entry."n";
}
$d->close();
?>

ハンドル: リソースID #2

パス: /etc/php5

.
..
アパッチ
CG
クリ

ファイル属性にも非常に重要です。ファイル属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、サイズなどが含まれます。

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

3. ファイル操作

● ファイルを読む

まず、ファイルが読み取れるかどうか (権限の問題)、または is_readable 関数を使用して情報を取得できるかどうかを確認します。:

コードは次のとおりですコードをコピー $file = 'dirlist.php';ファイルの存在を判断する関数には file_exists も含まれています (以下に示します) が、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合に使用できます。
if (is_readable($file) == false) {

die('ファイルが存在しないか、読み取ることができません');
} その他 {
echo '存在';
}
?>


コードは次のとおりですコードをコピー $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) {
死ね(「私は鶏の羽だ、無理だ」);
}
$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);
?>

http://www.bkjia.com/PHPjc/632695.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632695.html技術記事 phpにおけるファイル操作は、ファイルの読み書き操作、削除操作、判定操作、権限操作、一部のファイル検索などにすぎません。私が学んだphpのファイル操作関数を紹介します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート