ファイルとディレクトリの操作
PHP がローカル サーバー上のファイルとディレクトリを処理することは非常に便利ですが、アクセス許可やパスに関連した問題が発生する場合があります
1. ファイル
リソース fopen (文字列ファイル名、 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 ファイルのallow_url_fopen オプションを有効にする必要があります
//////////////////////////////コード部分///// ///// ///////////////////////////////
$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} を正常に開きました";@fopen($filename2) ,"r"))
echo "ファイル {$filename2} を開くことに失敗しました" ";
////////////////////////// ///////////////////////////////////////////////// /
------- ---出力結果----------------------- -----------------
ファイル userinfo.txt が正常に開きました
----------------- ------------------------ ------------------------ --
2. ファイルを使用した後、ファイルのすべての内容がバッファからハード ディスクに正しくフラッシュされることをオペレーティング システムに明示的に通知する必要があります。
fclose を使用します。 () ファイルを閉じるには、
bool fclose (リソース ハンドル)//開いているファイル ポインターを閉じます
3. ファイルを読み取ります。fopen 関数の mode パラメーターにより読み取りが可能になります。PHP には、データを読み取るための関数がいくつか用意されています。ファイル
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($ handle)
//////////// ///////////////////////////////////////////////// ////////////////
----- ----出力結果-------- ------------------------
------------- ------------------------------------ --------------- ------
4. ファイル読み取りのステータスを決定します。
各ファイル ハンドルにはファイル ポインターがあり、モード パラメーターに従って、ファイル内で操作が行われる次のカーソルを指します。 fopen 関数
のファイル ポインタは、最初はファイルの先頭 (0) またはファイルの末尾に位置します。
feof() は、ファイルが末尾 (最後まで) に到達したかどうかを判断できます。関数は TRUE を返します)
filesize() 関数はファイルのサイズを返します。 5. Write file
fwrite() 関数はファイル書き込みを実行します
////////////// / ////////////コード部分//////////////////////////////////// // /////
$filename = 'test.txt';
$somec;
// まず、ファイルが存在し、書き込み可能であることを確認する必要があります。
if (is_writable($filename)) {
// この例では、追加モードを使用して $filename を開きます。
// したがって、ファイル ポインターはファイルの先頭になります。
// fwrite() を使用するときに $somecontent が書き込まれる場所です。
if (!$handle = fopen($filename, 'a')) {
echo "ファイル $filename を開けません"
exit;
}
// $somecontent を書き込みます私たちが開いたファイル。
if (fwrite($handle, $somecontent) === FALSE) {
echo "ファイル $filename に書き込めません";
exit;
}
echo "$somecontent は正常に実行されましたファイル $filename に書き込まれます";
fclose($handle);
} else {
}
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