ホームページ >バックエンド開発 >PHPチュートリアル >Web サイト構築における PHP プログラミングの 8 つの一般的なファイル操作_PHP チュートリアル

Web サイト構築における PHP プログラミングの 8 つの一般的なファイル操作_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-22 09:02:43754ブラウズ

ファイルとディレクトリの操作


PHP はローカルサーバー上のファイルやディレクトリを処理するのに非常に便利ですが、パーミッションやパス関連の問題が発生する場合があります

1.ファイルを開きます

resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )

$handle = fopen(filename,mode)//ファイルを開き、このファイルのリソースを表すハンドルを返します

ファイル名には、相対パス、絶対パス、またはネットワーク プロトコル モードを使用できます。開始モードは rr+ww+aa+xx+b です。
バイナリ ファイルを操作するときに「b」フラグを指定しないと、破損したイメージ ファイルや rn 文字に関する奇妙な問題など、いくつかの奇妙な問題が発生する可能性があります。

移植性の理由から、fopen() でファイルを開くときは常に「b」フラグを使用することを強くお勧めします。

ファイルを開く方法はいくつかあります

$fp = @fopen('log.txt',"rb");
$fp = @fopen('../log.txt',"rb");
$fp = @fopen("http://www.runer.com.cn/default.htm","rb");//ftp や ghoper などのプロトコルを php.ini で使用することもできます。ファイルを有効にする必要があります

/////////////////////////////コード部分////////////////// /// /////////////////////

$filename1 = "userinfo.txt"; //このファイルはディレクトリまたは include_path に存在します

$filename2 = "test.txt"; //このファイルはディレクトリまたは include_path に存在しません

$resource1 = fopen($filename1,"rb");
@$resource2 = fopen($filename2,"rb");//このファイルはディレクトリに存在せず、インクルードされたファイルのパスを見つけるために include_path または include_path が使用されないため、この操作はエラーを報告します。エラーサプレッサー @ を使用すると、ブラウザーを強制的にエラーメッセージが出力されなくなります

if($resource1)

echo "ファイル {$filename1} が正常に開きました";
if(!@fopen($filename2,"r"))

echo "ファイル {$filename2} を開けませんでした";
//////////////////////////////////////////////// /// //////////////////////////

----------出力結果--------------- - ------------

ファイル userinfo.txt が正常に開きました

-------------------------------------------------- ------------------

2. ファイルを使用した後、ファイルが使用されたことを PHP に明示的に伝える必要があります。これにより、オペレーティング システムは、ファイルのすべての内容がバッファからハードディスクに正しくフラッシュされるようにします

fclose() を使用してファイルを閉じます

bool fclose (リソースハンドル)//開いているファイルポインターを閉じる

3. ファイルの読み取り。fopen 関数の mode パラメーターを使用すると、ファイルからデータを読み取ることができます。
string fgets ( int handle [, int length] ) はファイル ポインターから行を読み取り、バイナリ ファイルで fgets を試行すると予測できない結果が生成されます

長さが指定されていない場合、デフォルトで 1K データが読み取られ、改行文字 (戻り値に含まれる)、EOF、または長さ - 1 バイトが読み取られた後に停止します

string fgetss ( resource handle [, int length [, string allowed_tags]] ) ファイルポインターから行を読み取り、HTML タグをフィルターで除外します

fgetc() は 1 文字を読み取ります

fread() はバイナリデータを読み取ります

/////////////////////////////コード部分////////////////// /// /////////////////////

$handle = fopen ("test.jpg", "rb");
$c;
while (!feof($handle)) {

$contents .= @fread($handle, 8192);// 読み取りをループして、大きなファイルにマージします

}

fclose($ハンドル);
//////////////////////////////////////////////// /// //////////////////////////

----------出力結果--------------- - ------------

-------------------------------------------------- ------------------

4. ファイルの読み取りステータスを確認します

各ファイル ハンドルには、fopen 関数のモード パラメーターに従って、次の操作がファイル内のどこで行われるかを示すファイル ポインター、またはカーソルがあります

ファイル ポインターは、最初はファイルの先頭 (0) またはファイルの末尾に配置されます

feof() はファイルが最後に到達したかどうかを判断できます (関数は最後に到達すると TRUE を返します)

filesize() 関数はファイルのサイズを返します 5. ファイルを書き込みます

fwrite()関数はファイル書き込みを実行します

/////////////////////////////コード部分////////////////// /// /////////////////////

$ファイル名 = 'test.txt';
$somec;



// まず、ファイルが存在し、書き込み可能であることを確認する必要があります。

if (is_writable($filename)) {

// この例では、追加モードを使用して $filename を開きます


// したがって、ファイル ポインタはファイルの先頭になります

// fwrite() を使用するときに $somecontent が書き込まれる場所です。

if (!$handle = fopen($filename, 'a')) {

echo "ファイル $filename を開けません";
出る

}

// 開いたファイルに $somecontent を書き込みます。

if (fwrite($handle, $somecontent) === FALSE) {

echo "ファイル $filename に書き込めません";
出る

}

echo "$somecontent がファイル $filename に正常に書き込まれました";
fclose($ハンドル);
} その他 {

}

echo "ファイル $filename は書き込み可能ではありません";
//////////////////////////////////////////////// /// /////////////////////////

----------出力結果--------------- - ------------

これらのテキストがファイルに正常に追加され、ファイル test.txt に書き込まれました

-------------------------------------------------- ------------------

バイナリデータの場合、ディスクに書き込まれるデータバイト数を含む 3 番目のパラメータを指定する必要があります

$result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));



6. ファイル権限とその他の情報

is_readable()//ファイルが読み取り可能かどうかを判断します

is_writeable()//ファイルが書き込み可能かどうかを判断します

is_writable()//ファイルが書き込み可能かどうかを判断します

fileperms()//ファイルパーミッションを判定する(UNIX風ファイルパーミッションテスト関数)

file_exists()//このファイルが存在するかどうか

fileowner()//ファイルが属するユーザーを決定します

filegroup()//ファイルが属するグループを決定します

7. ファイルを削除して名前を変更します

unlink()//ファイルを削除

rename()//ファイルの名前を変更します

8. カタログにアクセス

ディレクトリアクセスにはスラッシュ「/」を使用することをお勧めします。これは Windows および UNIX システムと互換性があります

basename()//パス情報を除いたファイル名を返します

dirname()//ファイル名のディレクトリ部分を返します

realpath()//相対パスを受け入れ、ファイルの絶対パスを返します

pathinfo()//指定されたパスのディレクトリ名、基本ファイル名、拡張子を抽出します

opendir()//ディレクトリを開き、リソースハンドルを返します

readdir()//ディレクトリエントリを読み取る

rewinddir()//読み取りポインタを先頭に戻します

Closedir()//読み取りハンドルを閉じる

chdir()//現在のスクリプトの実行中に現在の作業ディレクトリを変更します

mkdir()//ディレクトリを作成する

rmdir() ディレクトリを削除します

/////////////////////////////コード部分////////////////// /// /////////////////////

//////////////////////////////////////////////// /// /////////////////////////

----------出力結果--------------- - ------------

ファイル名: web : ファイルタイプ: dir

ファイル名: 研究: ファイルタイプ: dir

www.abm163.comに転載

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/371884.html技術記事ファイルとディレクトリの操作 PHP は、ローカル サーバー上のファイルとディレクトリを処理するのに非常に便利ですが、パーミッションやパスに関連した問題が発生する場合があります。 1. ファイル リソース fopen (string...
) を開きます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。