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

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

Jul 13, 2016 am 10:49 AM
php 1つ 関数 消去 判断 存在する 勉強 操作する 書類 権限 目次 ノート 読み書き

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のファイル操作関数を紹介します...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles